XML格式檔案不管在寫程式或者網路上傳輸參數設定,都很常使用。這邊介紹一個簡單的XML Parser,可以用來取出每個參數的值,提供程式做參數設定使用。網站請參考,這次使用的版本是ezxml-0.8.6.tar.gz。
2014/08/29
2014/08/22
[OpenSSL]利用PEM_write_bio_RSAPrivateKey()來把DER格式轉換成PEM
上一篇([OpenSSL] 利用PEM_write_bio_X509()來把DER格式轉PEM格式)利用程式碼把Certificate轉乘PEM的格式,而這篇則是要把Private Key來轉換成PEM格式。
首先,把PEM的格式先轉換成DER。
openssl rsa -inform PEM -in private_key.pem -outform DER -out private_key.bin[OpenSSL] 利用PEM_write_bio_X509()來把DER格式轉PEM格式
Certificate及Key pairs檔案有很多種格式,有興趣可以參考這篇。
這篇的目的是,格式上的轉換,除了用OpenSSL的指令來轉換之外,也可以用C函式來轉換,底下是用PEM_write_bio_X509()來把Certificate從DER格式轉換成PEM格式。
這篇的目的是,格式上的轉換,除了用OpenSSL的指令來轉換之外,也可以用C函式來轉換,底下是用PEM_write_bio_X509()來把Certificate從DER格式轉換成PEM格式。
2014/07/19
[miniupnpd] miniupnpd 的 uPnP daemon使用
除了上一篇的uPnP client之外,更常使用的應該是uPnP的daemon,讓每個電腦和嵌入式裝置可以發出SSDP的Notify和M-Search Reply來確認目前聯結的網路裝置有哪些,以及具備哪些功能。
[miniupnpc] 在Windows下用MinGW編譯miniupnp client
2014/06/27
[mongoose] HTTPs web server使用分享
上次分享的mongoose的HTTP web server,[mongoose] HTTP web server使用分享,除了架設一般的HTTP連線之外,同時mongoose也suppot安全性SSL的連線,也就是HTTPs。
首先先產生一組private key
不過要使用HTTPs,就必須產生憑證給mongoose,才能夠利用這組憑證來加密。憑證產生的方式利用OpenSSL就可以做到。
openssl genrsa -out private.pem 10242014/05/20
[C/C++] 幾個容易搞混的指標pointer用法整理
1.pointer integer
int i, *pi;
i = 10;
pi = &i;
int *pi; --> 表示pi代表一個記憶體位址,*pi會取出這個記憶體位址所儲存之值
int i; &i --> 表示取出i所在的記憶體位址
2.pointer array
int list[5] = {0, 1, 2, 3, 4};
list代表list[0]所在的記憶體位址,所以透過指標*(list+i)就可以相當於取list[i]之值
int i, *pi;
i = 10;
pi = &i;
int *pi; --> 表示pi代表一個記憶體位址,*pi會取出這個記憶體位址所儲存之值
int i; &i --> 表示取出i所在的記憶體位址
2.pointer array
int list[5] = {0, 1, 2, 3, 4};
list代表list[0]所在的記憶體位址,所以透過指標*(list+i)就可以相當於取list[i]之值
[Linux] Build Linux i2c-gpio module 標準Linux i2c interface[bit-banging]
I2C是在IC之間,常被使用的data bus,而在目前的MCU之中,很多時候都會用GPIO來做模擬,也稱作bit-banging,而且Linux kernel也有support這個部分的driver,以下為研究的小心得:
詳細的I2C protocol可以參考
這次的I2C detail information:
7 bits address / not open-drain / 100kHz
2014/05/11
[Linux] 使用getnameinfo()來get local IPv6 address及用mask比較subnet
IPv6會是未來使用IP address的趨勢,所以嘗試使用getnameinfo來拿到本機的IPv6位址,並且跟其他的IPv6位址(fe80::19fb:8e1d:e1c:947e)比較,看使否在同一個子網域之下。比較的方式採用IPv6的位址與mask做完AND運算,得到Network ID後與另外一個IPv6的Network ID位址比較,因為無法一次比較128bytes,所以依次8個bytes一組,總共比較16次,16的結果都相同,就判定在同一個subnet之下。
IPv6為長度128 bytes的位址,表示的方式會以每16個bytes以符號分號":"隔開的方式來表示,譬如例子的"fe80:0000:0000:0000:19fb:8e1d:e1c:947e",總個128bytes,然後連續0的地方可以用連續兩個分號"::"來表示,所以就變成"fe80::19fb:8e1d:e1c:947e"。
IPv6為長度128 bytes的位址,表示的方式會以每16個bytes以符號分號":"隔開的方式來表示,譬如例子的"fe80:0000:0000:0000:19fb:8e1d:e1c:947e",總個128bytes,然後連續0的地方可以用連續兩個分號"::"來表示,所以就變成"fe80::19fb:8e1d:e1c:947e"。
2014/04/26
[Windows] Windows 8.1升級和跳過動態磚首頁
一開始拿到Windows 8的電腦,由於並非螢幕都是觸控,因此在使用Windows 8,可能就沒有那麼的順手。好加在Windows 8可以升級成Windows 8.1,除了擁有開始鍵之外,還能夠跳過動態磚,讓一開始登入的畫面就是傳統的桌面。
但是,在開心拿到Windows 8的電腦,要去市集下載更新的時候,會發現找不到Windows 8.1,查了一下,發現是因為Windows 8沒有更新些套件,因此在市集找不到Windows 8.1。參考官網說明。
但是,在開心拿到Windows 8的電腦,要去市集下載更新的時候,會發現找不到Windows 8.1,查了一下,發現是因為Windows 8沒有更新些套件,因此在市集找不到Windows 8.1。參考官網說明。
2014/04/25
[mongoose] HTTP web server使用分享
網頁server已經是現在不可或缺的一部份了,網頁的連線都要透過HTTP web server來處理,包括提供多連線的能力,簡單的HTTP web server可以參考[Java] Web Server撰寫這篇。
不過這次來介紹網路上提供open source的HTTP web server:mongoose的使用介紹。不僅可以在多個作業系統上使用,包括Linux、Mac和Windows,而且是open source,提供使用者自己去修改內容。網站參考mongoose download
這次使用的版本是mongoose-3.7.tgz,在Ubuntu 12.04下的環境使用
下載之後放在Ubuntu底下,然後解壓縮
不過這次來介紹網路上提供open source的HTTP web server:mongoose的使用介紹。不僅可以在多個作業系統上使用,包括Linux、Mac和Windows,而且是open source,提供使用者自己去修改內容。網站參考mongoose download
這次使用的版本是mongoose-3.7.tgz,在Ubuntu 12.04下的環境使用
下載之後放在Ubuntu底下,然後解壓縮
訂閱:
文章 (Atom)
