2010/04/20

InputStream 文字列

色々ググっていたら
Java(TM) PKI API プログラマーズガイド
ってのを見付けました
こりゃいいや、これに違いない

で、先ず証明書読みたいと思いまして読み進めると
java.security.cert.CertificateFactory
を使うと良いらしく、サンプルも
Java 暗号化アーキテクチャー (JCA)
に書いてありました
FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);

CertificateFactory cf = CertificateFactory.getInstance("X.509");

while (bis.available() > 0) {
Certificate cert = cf.generateCertificate(bis);
System.out.println(cert.toString());
}


でも file を Java で読みたくないなぁ
でも Jython で file 開いた後どうするんだろう
中身を str にしたら何とかならないかな
つわけでググってみると
String文字列をInputStreamに変換する方法 - Java入門
そうそう、こういうの

というわけで簡単に証明書の中身を出してみました
from java.security.cert import CertificateFactory
from java.io import ByteArrayInputStream

pem_file = open("google.pem", "r")
cf = CertificateFactory.getInstance("X.509")
pem_stream = ByteArrayInputStream(pem_file.read())
x509 = cf.generateCertificate(pem_stream)

print x509.version
print x509.sigAlgName
print x509.issuerDN
print x509.notBefore
print x509.notAfter
print x509.subjectDN
これがこうなります
$ jython read_cert.jy
3
SHA1withRSA
CN=Thawte SGC CA, O=Thawte Consulting (Pty) Ltd., C=ZA
Fri Dec 18 09:00:00 JST 2009
Mon Dec 19 08:59:59 JST 2011
CN=www.google.com, O=Google Inc, L=Mountain View, ST=California, C=US
$

Python で開いた file をそのまま InputStream? にする方法もある気がする
今度調べよう

0 件のコメント:

コメントを投稿