mirror of https://github.com/dahall/Vanara.git
Added unit tests for changes to Crypt functions
parent
623b02048c
commit
eef11ef46e
|
@ -0,0 +1,49 @@
|
|||
using NUnit.Framework;
|
||||
using System.Linq;
|
||||
using static Vanara.PInvoke.AdvApi32;
|
||||
using static Vanara.PInvoke.Crypt32;
|
||||
|
||||
namespace Vanara.PInvoke.Tests;
|
||||
|
||||
[TestFixture()]
|
||||
public class WinCryptTests
|
||||
{
|
||||
private const string myContName = "MyTestingContainer";
|
||||
|
||||
[Test]
|
||||
public void CryptExportKeyTest()
|
||||
{
|
||||
CryptAcquireContext(out _, myContName, CryptProviderName.MS_ENHANCED_PROV, PROV_RSA_FULL, CryptAcquireContextFlags.CRYPT_DELETEKEYSET);
|
||||
Assert.That(CryptAcquireContext(out SafeHCRYPTPROV hProv, myContName, CryptProviderName.MS_ENHANCED_PROV, PROV_RSA_FULL, CryptAcquireContextFlags.CRYPT_NEWKEYSET), ResultIs.Successful);
|
||||
using (hProv)
|
||||
{
|
||||
// get user key from container
|
||||
Assert.That(CryptGenKey(hProv, (ALG_ID)CertKeySpec.AT_KEYEXCHANGE, CryptGenKeyFlags.CRYPT_EXPORTABLE, out SafeHCRYPTKEY hKey), ResultIs.Successful);
|
||||
using (hKey)
|
||||
{
|
||||
uint dwBlobLen = 0;
|
||||
CryptExportKey(hKey, default, BlobType.PUBLICKEYBLOB, 0, null, ref dwBlobLen);
|
||||
Assert.That(dwBlobLen, Is.GreaterThan(0));
|
||||
|
||||
var pbKeyBlobBuffer = new byte[dwBlobLen];
|
||||
Assert.That(CryptExportKey(hKey, default, BlobType.PUBLICKEYBLOB, 0, pbKeyBlobBuffer, ref dwBlobLen), ResultIs.Successful);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CryptEnumProviderTypesTest()
|
||||
{
|
||||
var output = CryptEnumProviderTypes().ToArray();
|
||||
Assert.That(output, Is.Not.Empty);
|
||||
output.WriteValues();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CryptEnumKeyIdentifierPropertiesTest()
|
||||
{
|
||||
var output = CryptEnumKeyIdentifierProperties().ToArray();
|
||||
Assert.That(output, Is.Not.Empty);
|
||||
output.WriteValues();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue