@kjur / 漆嶌 賢二
ページの移動は ← ↑ → ↓ ESC キーか、右下のボタンを押してください
新しい英語スライドはコチラ
Hello Kenji,
I'm contacting you because I am starting to work on a somewhat bigger project that could use your Library. I am a member of the german Pirate Party and responsible for the implementation of a provable internet-voting system we just decided to use.
In a nutshell I need a way to generate RSA Private Keys, export them via PKCS#1 PEM, X509 Certs or similar methods, as well as signing, encrypting, and verifying signatures.
There are a few questions I'd like to get answered, if you have the time. Do you deem your project ready for use in a central position for securing vote integrity for a party of 30.000 people? Do you have a way of exporting generated Keys via one of the above mentioned methods in mind for your library? I have had trouble trying to export a generated RSAKey, is there a way as of right now?
Kind regards,
参考 NHK: 活躍!ドイツ海賊党 〜ネット世代の政治のゆくえ〜
http://www.dailymotion.com/video/xy5a70
署名 | *withRSA, *withRSAandMGF1, *withECDSA |
ハッシュ | MD5,SHA1/224/256/384/512,RipeMD160 |
MAC | HmacMD5/SHA1/224/256/384/512 |
楕円曲線 |
|
証明書、鍵、タイムスタンプ、署名データなど
多くの通信データはASN.1形式になっている事が多い。
特徴1:int、longに制限されないとても長いデータを表現可
特徴2:構造化データも表現できる
特徴2:構造化データも表現できる
16進数文字列のASN.1データに対して、指定位置のASN.1オブジェクトのタグ、長さ、値情報が取れる。
子要素のインデックスリストを得る。
構造型ASN.1の子孫を指定するには、各階層で何番目かを示す"nthList"を使う。ASN.1構造の深い所、例えば証明書の発行者名などを場所指定して取得する場合に重宝する。
SEQUENCE idx=0 SET [0] idx=4 INTEGER 4 [0,0] idx=8 ← 参照したい INTEGER 31 [0,1] idx=14 SET [1] UTF8STRING "aaa" [1,0] IA5STRING "bbb" [1,1]
基本型、構造型、タグなど全てのASN.1オブジェクトを16進数文字列表現するためのクラスが定義されており、
プロパティを渡すだけで簡単に生成できる。
BouncyCastleやIAIKと大体同じ。
でも、もっと簡単な方法が→
newObjectでJSONデータから一発生成
X.509証明書 ASN.1の生成は
大体、BouncyCastle、IAIKに似ています。
- s - ASCII文字列
- utf8 - UTF8文字列
- hex - 16進数文字列
- b64 - Base64エンコード文字列
- b64u - Base64URLエンコード文字列