http://www-archive.mozilla.org/projects/security/pki/nss/tech-notes/tn7.htmlから、次のように述べています
低レベルの署名には、PK11_Sign() を使用します。これらの関数は両方とも、データの PKCS #1 ラッピングを行います。PK11_Sign は、ハッシュの BER エンコードを行いません (SGN_ 関数で行われるように)。
コード API から
/*
* sign a hash. The algorithm is determined by the key.
*/
SECStatus
PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, const SECItem *hash)
Q1) 私の PK11_Sign 関数は無効な署名をもたらします。hash->data の入力は、「Hello SHA-256」からの SHA-256 の a7cd893b31b0ea44ed1aa7cafcda658744cc5a02ef26feccceaae9a8becb83a0 ハッシュです。data->len は 64 です。次に、コードは 16 進数から 2 進数への変換を実行します。次に、これらの情報を PK11_Sign に渡します。手順を見逃しましたか?
Q2) ハッシュの BER 符号化とはどういう意味ですか? ハッシュの文字列が 16 進数である場合、それをバイナリのハッシュに変換します。これが BER ですか? または、文は、DER のみをサポートすることを意味しますか?
Q3) 上記の操作に似た PK11_Sign のサンプルはありますか?