Altair Cryptography
第0.43版 2016年10月23日
第0.17版 2000年 4月 2日
- Altair独自の暗号関連機能
- 鍵ペア生成
- 暗号化関連機能
- 復号化
- メッセージダイジェスト計算
- OpenSSLの暗号関連機能
- SMIME
- Internet Header
- MimeMultipart
- base64
- random
公開鍵暗号の鍵ペアを生成して返します。
返却値の形式は、(public_key、secret_key)です。
生成に失敗するとnullが返ります。
サポートしているアルゴリズムは以下です。
"N-RSA" RSAベースの公開鍵暗号です。
鍵のbit数に制限はありません。
public_keyの形式は(e, m)、e,m はintegerです。
secret_keyの形式は(d, m)、d,m はintegerです。
key_specの形式は(p-hint, q-hint, e-hint)で、
2個の素数はp-hint近辺とq-hint近辺のものが選ばれます。
eは、e-hint近辺のものが選ばれます。
p-hint, q-hint, e-hint はintegerです。
暗号化を行うためのコンテキストを初期化して返します。
初期化に失敗するとnullが返ります。
blockは、平文をこの大きさのブロックに分割して暗号化するブロックサイズを指定するintegerです。
サポートしているアルゴリズムは以下です。
"N-RSA" RSAベースの公開鍵暗号です。
keyの形式は(k, m)、k,mの形式はintegerです。
blockはmの大きさ以下でなければなりません。
"N-DES" 独自の共通鍵暗号です。
鍵のbit数に制限はありません。
keyの形式はbinaryです。
keyのサイズは2のn乗でなければなりません。
またblockはkeyサイズ以下の2のn乗でなければなりません。
平文を暗号化します。
srcの形式は(binary, index, size)です。
RSAベースの公開鍵暗号の場合:
sizeはencrypt_initのblockで割りきれなければなりません。
dstの形式は(binary, index)で、(size / block * mの大きさ) の余裕がなければなりません。
独自共通鍵暗号の場合:
sizeはblockと同じにします。
コンテキストを開放し、暗号化を終了します。
独自共通鍵暗号で暗号化したファイルを作成します。
keyはbinaryまたはstringの共通鍵、infile, outfile はstring型のファイル名です。
復号化を行うためのコンテキストを初期化して返します。
初期化に失敗するとnullが返ります。
blockは、復号化するデータのブロックの単位を指定します。
サポートしているアルゴリズムは以下です。
"N-RSA" RSAベースの公開鍵暗号です。
keyの形式は(k, m)、k,mの形式はintegerです。
"N-DES" 独自の共通鍵暗号です。
keyはdecrypt_initの場合と同じです。
暗号文を復号化した平文を返します。
srcの形式は(binary, index, size)です。
RSAベースの公開鍵暗号の場合:
sizeはpublic_key (pk,m), secret_key (sk,m)のmの大きさで割りきれなければなりません。
dstの形式は(binary, index)で、(size / mの大きさ * decrypt_initのblock) の余裕が
なければなりません。
独自共通鍵暗号の場合:
sizeはblockと同じにします。
コンテキストを開放し、復号化を終了します。
独自共通鍵暗号で暗号化されたファイルの複合化ファイルを作成します。
keyはbinaryまたはstringの共通鍵、infile, outfile はstring型のファイル名です。
メッセージダイジェストを計算するコンテキストを初期化して返します。
サポートしているアルゴリズムは、"MD5"、"SHA-1"です。
メッセージを分割した各ブロックdataについて
メッセージダイジェストコンテキストを更新します。
dataの形式は(binary, index, size)です。
メッセージダイジェストコンテキストを開放するとともに、
計算されたメッセージダイジェストをメッセージダイジェストコンテキストから
取りだして返します。
"MD5"のダイジェストの長さは16バイト、
"SHA-1"のダイジェストの長さは20バイトです。
SMIMEの暗号化を行います。
成功すると非nullが返ります。
filesの形式は、(cipher, cert, null, null) です。
cipherで有効なものは以下です。
"des3"
"des"
"rc2-40"
"rc2-64"
"rc2-128"
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
SMIMEの暗号の復号化を行います。
成功すると非nullが返ります。
filesの形式は、(null, cert, key, null) です。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
SMIMEの署名を行います。
成功すると非nullが返ります。
filesの形式は、(null, cert, key, null) です。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
SMIMEの署名検証を行います。
成功すると非nullが返ります。
filesの形式は、(null, cert, null, caCert) です。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
Mimeヘッダーを読み込み内部データを作成して返します。
成功すると非nullが返ります。
戻り値の形式は、(headers, size)です。
headersの形式は、()-/header_name/=>header_value-/param_name/=>param_value で
sizeは "\r\n\r\n"までの文字数になります。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
内部データdataからMimeヘッダーのテキストを作成します。
成功すると非nullが返ります。
headersの形式は、()-/header_name/=>header_value-/param_name/=>param_value です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
binary型のインターネットヘッダーからタイプが文字列typeのラインをすべて除いた
binary型のインターネットヘッダーを返します。
例:
headers = al_crypt("remove_header", headers, "Proxy-Connection", null);
binary型のインターネットヘッダーに文字列lineのラインの行を追加した
binary型のインターネットヘッダーを返します。
例:
headers = al_crypt("remove_header", headers, "Connection: Close\r\n", null);
binary型のインターネットヘッダーから最初に見つかったタイプが文字列typeの値を文字列で返します。
タイプが文字列typeのラインが見つからなければnullが返ります。
例:
length = al_crypt("remove_header", headers, "Content-Length", null);
MimeMultipartを読み込み内部データを作成します。
成功すると非nullが返ります。
headersは、 *-/"Content-Type"/->*-/"boundary"/->bounary値 を含んでいなければなりません。
戻り値の形式は、(headers)-/-/=>binary です。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
Multipartの内部データを書き出します。
成功すると非nullが返ります。
dataは、 (headers)-/-/=>binary|string で、
headersは、*-/"Content-Type"/->*-/"boundary"/->bounary値 を含んでいなければなりません。
境界の値はをheadersのContent-Typeのboudaryの値になります。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
base64のエンコードを行います。
成功すると非nullが返ります。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
base64のデコードを行います。
成功すると非nullが返ります。
変数inの形式は、ファイル名またはbinaryまたは(binary, index, size)です。
変数outの形式は、ファイル名またはnullです。nullの場合はbinaryが返ります。
0-9とA-Zの文字列だけで構成されたn桁のランダムな文字列を返します。
nはintegerです。