[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_create_key_pair_rsa", CallingConvention = CallingConvention.Cdecl)]
- public static extern int CreateKeyPairRsa(int size, string privateKeyAlias, string publicKeyAlias,
+ public static extern int CreateKeyPairRsa(UIntPtr size, string privateKeyAlias, string publicKeyAlias,
CkmcPolicy privateKeyPolicy, CkmcPolicy publicKeyPolicy);
// int ckmc_create_key_pair_rsa(const size_t size, const char* private_key_alias, const char* public_key_alias,
// const ckmc_policy_s policy_private_key, const ckmc_policy_s policy_public_key);
[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_create_key_pair_dsa", CallingConvention = CallingConvention.Cdecl)]
- public static extern int CreateKeyPairDsa(int size, string privateKeyAlias, string publicKeyAlias,
+ public static extern int CreateKeyPairDsa(UIntPtr size, string privateKeyAlias, string publicKeyAlias,
CkmcPolicy privateKeyPolicy, CkmcPolicy publicKeyPolicy);
// int ckmc_create_key_pair_dsa(const size_t size, const char* private_key_alias, const char* public_key_alias,
// const ckmc_policy_s policy_private_key, const ckmc_policy_s policy_public_key);
[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_create_key_pair_ecdsa", CallingConvention = CallingConvention.Cdecl)]
public static extern int CreateKeyPairEcdsa(int ecType, string privateKeyAlias, string publicKeyAlias,
CkmcPolicy privateKeyPolicy, CkmcPolicy publicKeyPolicy);
- // int ckmc_create_key_pair_ecdsa(const size_t size, const char* private_key_alias, const char* public_key_alias,
+ // int ckmc_create_key_pair_ecdsa(const ckmc_ec_type_e type, const char* private_key_alias, const char* public_key_alias,
// const ckmc_policy_s policy_private_key, const ckmc_policy_s policy_public_key);
[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_create_key_aes", CallingConvention = CallingConvention.Cdecl)]
- public static extern int CreateKeyAes(int size, string ceyAlias, CkmcPolicy keyPolicy);
+ public static extern int CreateKeyAes(UIntPtr size, string ceyAlias, CkmcPolicy keyPolicy);
// int ckmc_create_key_aes(size_t size, const char* key_alias, ckmc_policy_s key_policy);
[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_create_signature", CallingConvention = CallingConvention.Cdecl)]
[DllImport(Libraries.KeyManager, EntryPoint = "ckmc_get_cert_chain_with_trustedcert", CallingConvention = CallingConvention.Cdecl)]
public static extern int GetCertChainWithTrustedCerts(IntPtr cert, IntPtr untrustedCerts, IntPtr trustedCerts,
- bool useTrustedSystemCerts, out IntPtr certChain);
+ bool useTrustedSystemCerts, out IntPtr certChain);
// int ckmc_get_cert_chain_with_trustedcert(const ckmc_cert_s *cert, const ckmc_cert_list_s* untrustedcerts,
// const ckmc_cert_list_s* trustedcerts, const bool use_trustedsystemcerts, ckmc_cert_list_s **ppcert_chain_list);
/// <summary>
/// Creates RSA private/public key pair and stores them inside secure repository based on each policy.
/// </summary>
- /// <param name="size">The size of key strength to be created. 1024, 2048, 3072, and 4096 are supported.</param>
+ /// <param name="size">The size of key strength to be created. 1024, 2048, and 4096 are supported.</param>
/// <param name="privateKeyAlias">The name of private key to be stored.</param>
/// <param name="publicKeyAlias">The name of public key to be stored.</param>
/// <param name="privateKeyPolicy">The policy about how to store a private key securely.</param>
static public void CreateRsaKeyPair(int size, string privateKeyAlias, string publicKeyAlias,
Policy privateKeyPolicy, Policy publicKeyPolicy)
{
- int ret = Interop.CkmcManager.CreateKeyPairRsa(size, privateKeyAlias, publicKeyAlias,
+ if (size != 1024 && size != 2048 && size != 4096)
+ throw new ArgumentException(string.Format("Invalid key size({0})", size));
+
+ int ret = Interop.CkmcManager.CreateKeyPairRsa((UIntPtr)size, privateKeyAlias, publicKeyAlias,
privateKeyPolicy.ToCkmcPolicy(), publicKeyPolicy.ToCkmcPolicy());
Interop.CheckNThrowException(ret, "Failed to Create RSA Key Pair");
}
/// <summary>
/// Creates DSA private/public key pair and stores them inside secure repository based on each policy.
/// </summary>
- /// <param name="size">The size of key strength to be created. 1024, 2048, and 4096 are supported.</param>
+ /// <param name="size">The size of key strength to be created. 1024, 2048, 3072, and 4096 are supported.</param>
/// <param name="privateKeyAlias">The name of private key to be stored.</param>
/// <param name="publicKeyAlias">The name of public key to be stored.</param>
/// <param name="privateKeyPolicy">The policy about how to store a private key securely.</param>
static public void CreateDsaKeyPair(int size, string privateKeyAlias, string publicKeyAlias,
Policy privateKeyPolicy, Policy publicKeyPolicy)
{
- int ret = Interop.CkmcManager.CreateKeyPairDsa(size, privateKeyAlias, publicKeyAlias,
+ if (size != 1024 && size != 2048 && size != 3072 && size != 4096)
+ throw new ArgumentException(string.Format("Invalid key size({0})", size));
+
+ int ret = Interop.CkmcManager.CreateKeyPairDsa((UIntPtr)size, privateKeyAlias, publicKeyAlias,
privateKeyPolicy.ToCkmcPolicy(), publicKeyPolicy.ToCkmcPolicy());
Interop.CheckNThrowException(ret, "Failed to Create DSA Key Pair");
}
/// <remarks>If password in policy is provided, the key is additionally encrypted with the password in policy.</remarks>
static public void CreateAesKey(int size, string keyAlias, Policy policy)
{
- int ret = Interop.CkmcManager.CreateKeyAes(size, keyAlias, policy.ToCkmcPolicy());
+ if (size != 128 && size != 192 && size != 256)
+ throw new ArgumentException(string.Format("Invalid key size({0})", size));
+
+ int ret = Interop.CkmcManager.CreateKeyAes((UIntPtr)size, keyAlias, policy.ToCkmcPolicy());
Interop.CheckNThrowException(ret, "Failed to AES Key");
}
}