今回は OCaml でいってみようと思います
OCaml に関してはプログラミング in OCaml など見ると良いのかも
とりあえずググりますと
http://sourceforge.net/projects/savonet/files/ocaml-ssl/
こちらに OpenSSL の binding があったのでこれを使おうかと思いまして
っていうかね、
OCamlで簡易SSLクライアント - komamitsu.log
こんな素敵なまとめページが見つかってしまいました
OCaml-SSL をインストールしようとすると
「findlib が無いよ」
って言われたので findlib から入れました
で、使い方は上記ページを参考にしつつ試して動いた感じです
OCaml-SSL のソースをザザっと眺めてみたんですが
証明書をいじる関数があまり用意されていないらしく
というか subject と issuer を抜くものしかありませんでした
あらら
とりあえず minimal かと思われる証明書取ってくるのがこれ
open Unix;;っていうか何というコード
Ssl.init ();;
let hostent = gethostbyname "www.google.com";;
let addr = hostent.h_addr_list.(0);;
let sockaddr = ADDR_INET(addr, 443);;
let sock = Ssl.open_connection Ssl.SSLv23 (ADDR_INET(addr, 443));;
let cert = Ssl.get_certificate sock;;
Printf.printf "%s%!" (Ssl.get_subject cert)
変数に欲しいもの列記して実行してるだけです
って OpenSSL をいじってるわけだから仕方ないのかな?
でまぁこんなのを show_subject.ml として用意して
ocamlfind c -package ssl -thread -linkpkg -o show_subject show_subject.mlと打つとコマンドができました
findlib っていうのがあるのだというのを知ったのが
今回の最大の成果となっております
0 件のコメント:
コメントを投稿