SCEP サービスを実装しようとしていますが、暗号化 ++ の経験は非常に限られているため、これは困難な戦いでした。現在、クライアントから証明書のリクエストを受け付けており、リクエストの解釈に取り組んでいます。証明書要求は CMS/PKCS#7 の形式である必要がありますが、解釈に非常に苦労しています。
- http://lipingshare.com/Asn1Editor/で ASN.1 edtor を使用すると、「データの読み取りに失敗しました」というメッセージが表示されます。
- Linux で「openssl asn1parse -inform DER < bytes」を使用すると、かなり理にかなった結果が得られます。アプリケーションは Windows .NET で実行する必要があるため、Linux への不満は主に絶望的なものでした。
.NET でデコードしようとすると失敗します。
byte[] データ = Convert.FromBase64String( input_message );
SignedCms signerInfo = 新しい SignedCms();
EnvelopedCms contentInfo = new EnvelopedCms();
signerInfo.decode(データ);
contentInfo.Decode( signerInfo.ContentInfo.Content );
contentInfo.Decrypt();[*][*]: これは CryptographicException とメッセージで失敗します: 「オブジェクトまたはプロパティが見つかりません」。
BouncyCastle .NET クラスでデコードしようとすると失敗します:
byte[] データ = Convert.FromBase64String( input_message );
Org.BouncyCastle.Cms.CmsSignedData signedData = new CmsDignedData( データ );
Org.BouncyCastle.Cms.CmsEnvelopedData ed = new CmsEnvelopedData( signedD.ContentInfo);[*][*] これは、"ArgumentException" とメッセージで失敗します: "unknown object in factor: BerTaggedObject"。
これは、明確で簡潔な質問の StackOverflows 要件を満たしていないことを認識しています。しかし、それは私の側の明確さの欠如を反映しているだけだと思います:-(基本的に、標準のWindowsクラスまたはBouncyCastle API; しかし、いくつかの具体的な質問で締めくくります:
- Lipingshare Asn.1 エディターが失敗するのに対し、Linux 上の asn1parse は私のメッセージを処理しているように見えるという事実から何かを推測できますか?
- SCEP 標準では、CMS メッセージは BER でエンコードする必要があると規定されています。一方、asn1parse プログラムは「-inform DER」スイッチを使用し (それでも機能します...)、BouncyCastle クラスは BERTaggedObject について不平を言うようです。
アイデア、考え、提案に感謝します。
ヨアキム