Подписание OpenSSL и проверка CAPI

Я работаю с библиотекой CAPICOM, но она недоступна на Android и iOS. Насколько я знаю, подписанное сообщение CAPICOM находится в формате PKCS # 7, тогда я хочу использовать OpenSSL для создания подписанного сообщения, как это сделал CAPICOM.

Команды OpenSSL, которые я использовал:

iconv -f utf-8 -t utf-16le data.bin > data-utf16le.bin

openssl smime -sign -binary -noattr -in data-utf16le.bin -signer demo.pem -inkey demo.key -out sign.txt -outform PEM

тогда я проверил с CAPICOM как этот образец: http://www.codeproject.com/Articles/9691/Using-CAPICOM-in-NET-for-Digital-Signatures-with-A

Метод проверки:

public bool VerifyDetachedSignature(string plaintextMessage, string signedContent, Encoding encodingType)
{
try
{
this._clearText = plaintextMessage;
this._signedContent = signedContent;
CAPICOM.SignedData signedData = new CAPICOM.SignedDataClass();
CAPICOM.Utilities u = new CAPICOM.UtilitiesClass();
IntPtr _content = u.ByteArrayToBinaryString(encodingType.GetBytes(plaintextMessage));
signedData.set_Content(_content);
int len = _signedContent.Length;
signedData.Verify(_signedContent,true, CAPICOM.CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_ONLY);
SignerCert=null;
CAPICOM.Signer s = (CAPICOM.Signer) signedData.Signers[1];
SignerCert = (CAPICOM.Certificate)s.Certificate;
return true;
}
catch(COMException e)
{
return false;
}
}

encodingType является System.Text.Encoding.UTF8,

Результат недействителен.

Я снова подписываюсь с CAPICOM и вижу, что длина подписанного сообщения в этом случае превышает длину подписанного сообщения, созданного OpenSSL.

Пожалуйста, помогите мне понять!

3

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]