Я работаю с EDI - AS2. Поэтому мне нужно создать сертификат PrivateKey ( .pfx) и сертификат PublicKey ( .cer). Здесь я подписываю свое сообщение своим сертификатом PrivateKey ( .pfx) и делюсь сертификатом PublicKey ( .cer) с моим торговым партнером, чтобы они могли проверить подпись.
Я написал код для генерации тестового сертификата PublicKey (* .pfx). Ниже приведена часть кода, где я устанавливаю свойства закрытого ключа:
// create a new private key for the certificate
CX509PrivateKey privateKey = new CX509PrivateKey();
privateKey.ProviderName = "Microsoft Enhanced RSA and AES Cryptographic Provider";
privateKey.MachineContext = true;
privateKey.Length = 1024;
privateKey.KeySpec = X509KeySpec.XCN_AT_KEYEXCHANGE;
privateKey.ExportPolicy = X509PrivateKeyExportFlags.XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG;
privateKey.Create();
код выше работает нормально, когда я использую privateKey.Length = 1024 или 512.
Но наш торговый партнер хочет, чтобы мы создали сертификат с размером ключа 168 с 3DES и SHA1
Всякий раз, когда я даю privateKey.Length = 168, я получаю следующую ошибку:
CertEnroll::CX509PrivateKey::Create: Invalid flags specified. 0x80090009 (-2146893815)
Я не могу понять, какие изменения мне нужно сделать, чтобы это сработало.
Пожалуйста, помогите,
Спасибо