Tag: cryptoapi

使用C#生成的数字签名无法在C ++中进行validation

我有一个C#应用程序,它使用RSA对数据进行数字签名。 代码如下: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.ImportCspBlob(privateKeyBlob); SHA1 sha1 = new SHA1CryptoServiceProvider(); sha1.ComputeHash(myData); byte[] signature = rsa.SignHash(sha1.Hash, CryptoConfig.MapNameToOID(“SHA1”)); 我无法在C ++中validation签名。 代码如下: HCRYPTPROV cryptProvider; CryptAcquireContext(&cryptProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); // PROV_RSA_SIG does not work HCRYPTKEY publicKey; CryptImportKey(cryptProvider, publicKeyBlob, publicKeyBlobLength, 0, 0, &publicKey); HCRYPTHASH hash; CryptCreateHash(cryptProvider, CALG_SHA1, 0, 0, &hash); CryptHashData(hash, myData, myDataLength, 0); BOOL isSigOk […]