public void _03_ByteArrayParameterTest() { Helpers.CheckPlatform(); byte[] parameter = new byte[16]; System.Random rng = new Random(); rng.NextBytes(parameter); // Create mechanism with the byte array parameter Mechanism mechanism = new Mechanism(CKM.CKM_AES_CBC, parameter); Assert.IsTrue(mechanism.Type == NativeLongUtils.ConvertFromCKM(CKM.CKM_AES_CBC)); // We access private Mechanism member here just for the testing purposes CK_MECHANISM ckMechanism = (CK_MECHANISM)typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == NativeLongUtils.ConvertFromCKM(CKM.CKM_AES_CBC)); Assert.IsTrue(ckMechanism.Parameter != IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == NativeLongUtils.ConvertFromInt32(parameter.Length)); parameter = null; // Create mechanism with null byte array parameter mechanism = new Mechanism(CKM.CKM_AES_CBC, parameter); Assert.IsTrue(mechanism.Type == NativeLongUtils.ConvertFromCKM(CKM.CKM_AES_CBC)); // We access private Mechanism member here just for the testing purposes ckMechanism = (CK_MECHANISM)typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == NativeLongUtils.ConvertFromCKM(CKM.CKM_AES_CBC)); Assert.IsTrue(ckMechanism.Parameter == IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == 0); }
public void _04_ObjectParameterTest() { if (Platform.UnmanagedLongSize != 4 || Platform.StructPackingSize != 1) { Assert.Inconclusive("Test cannot be executed on this platform"); } byte[] data = new byte[24]; System.Random rng = new Random(); rng.NextBytes(data); // Specify mechanism parameters CkKeyDerivationStringData parameter = new CkKeyDerivationStringData(data); // Create mechanism with the object as parameter Mechanism mechanism = new Mechanism(CKM.CKM_XOR_BASE_AND_DATA, parameter); Assert.IsTrue(mechanism.Type == (uint)CKM.CKM_XOR_BASE_AND_DATA); // We access private Mechanism member here just for the testing purposes Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM ckMechanism = (Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM) typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == (uint)CKM.CKM_XOR_BASE_AND_DATA); Assert.IsTrue(ckMechanism.Parameter != IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == Net.Pkcs11Interop.Common.UnmanagedMemory.SizeOf(typeof(Net.Pkcs11Interop.LowLevelAPI41.MechanismParams.CK_KEY_DERIVATION_STRING_DATA))); }
public void _03_ByteArrayParameterTest() { if (Platform.UnmanagedLongSize != 4 || Platform.StructPackingSize != 1) { Assert.Inconclusive("Test cannot be executed on this platform"); } byte[] parameter = new byte[16]; System.Random rng = new Random(); rng.NextBytes(parameter); // Create mechanism with the byte array parameter Mechanism mechanism = new Mechanism(CKM.CKM_AES_CBC, parameter); Assert.IsTrue(mechanism.Type == (uint)CKM.CKM_AES_CBC); // We access private Mechanism member here just for the testing purposes Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM ckMechanism = (Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM) typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == (uint)CKM.CKM_AES_CBC); Assert.IsTrue(ckMechanism.Parameter != IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == parameter.Length); parameter = null; // Create mechanism with null byte array parameter mechanism = new Mechanism(CKM.CKM_AES_CBC, parameter); Assert.IsTrue(mechanism.Type == (uint)CKM.CKM_AES_CBC); // We access private Mechanism member here just for the testing purposes ckMechanism = (Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM) typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == (uint)CKM.CKM_AES_CBC); Assert.IsTrue(ckMechanism.Parameter == IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == 0); }
public void _02_EmptyParameterTest() { Helpers.CheckPlatform(); // Create mechanism without the parameter Mechanism mechanism = new Mechanism(CKM.CKM_RSA_PKCS); Assert.IsTrue(mechanism.Type == NativeLongUtils.ConvertFromCKM(CKM.CKM_RSA_PKCS)); // We access private Mechanism member just for the testing purposes CK_MECHANISM ckMechanism = (CK_MECHANISM)typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == NativeLongUtils.ConvertFromCKM(CKM.CKM_RSA_PKCS)); Assert.IsTrue(ckMechanism.Parameter == IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == 0); }
public void _02_EmptyParameterTest() { if (Platform.UnmanagedLongSize != 4 || Platform.StructPackingSize != 1) { Assert.Inconclusive("Test cannot be executed on this platform"); } // Create mechanism without the parameter Mechanism mechanism = new Mechanism(CKM.CKM_RSA_PKCS); Assert.IsTrue(mechanism.Type == (uint)CKM.CKM_RSA_PKCS); // We access private Mechanism member just for the testing purposes Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM ckMechanism = (Net.Pkcs11Interop.LowLevelAPI41.CK_MECHANISM) typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == (uint)CKM.CKM_RSA_PKCS); Assert.IsTrue(ckMechanism.Parameter == IntPtr.Zero); Assert.IsTrue(ckMechanism.ParameterLen == 0); }
public void _04_ObjectParameterTest() { Helpers.CheckPlatform(); byte[] data = new byte[24]; System.Random rng = new Random(); rng.NextBytes(data); // Specify mechanism parameters CkKeyDerivationStringData parameter = new CkKeyDerivationStringData(data); // Create mechanism with the object as parameter Mechanism mechanism = new Mechanism(CKM.CKM_XOR_BASE_AND_DATA, parameter); Assert.IsTrue(mechanism.Type == NativeLongUtils.ConvertFromCKM(CKM.CKM_XOR_BASE_AND_DATA)); // We access private Mechanism member here just for the testing purposes CK_MECHANISM ckMechanism = (CK_MECHANISM)typeof(Mechanism).GetField("_ckMechanism", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mechanism); Assert.IsTrue(ckMechanism.Mechanism == NativeLongUtils.ConvertFromCKM(CKM.CKM_XOR_BASE_AND_DATA)); Assert.IsTrue(ckMechanism.Parameter != IntPtr.Zero); Assert.IsTrue(NativeLongUtils.ConvertToInt32(ckMechanism.ParameterLen) == UnmanagedMemory.SizeOf(typeof(CK_KEY_DERIVATION_STRING_DATA))); }