From a2dd3a2b9045b5a787e0981bef2f378ab148ac1f Mon Sep 17 00:00:00 2001 From: Miloslav Trmač Date: Tue, 30 Nov 2010 22:02:17 +0100 Subject: Add DSA --- include/ncrypto/ncrypto.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'include') diff --git a/include/ncrypto/ncrypto.h b/include/ncrypto/ncrypto.h index 07e57be..ff20d8c 100644 --- a/include/ncrypto/ncrypto.h +++ b/include/ncrypto/ncrypto.h @@ -138,6 +138,53 @@ CK_RV ncr_key_pair_generate_rsa (struct ncr_public_key **public_key, CK_ULONG modulus_bits, const struct ncr_mpi *public_exponent); + /* DSA keys */ + +enum + { + NCR_DSA_PUBLIC_MPI_PRIME, + NCR_DSA_PUBLIC_MPI_SUBPRIME, + NCR_DSA_PUBLIC_MPI_BASE, + NCR_DSA_PUBLIC_MPI_VALUE, + NCR_DSA_PUBLIC_NUM_MPIS + }; + +enum + { + NCR_DSA_PRIVATE_MPI_PRIME, + NCR_DSA_PRIVATE_MPI_SUBPRIME, + NCR_DSA_PRIVATE_MPI_BASE, + NCR_DSA_PRIVATE_MPI_VALUE, + NCR_DSA_PRIVATE_NUM_MPIS + }; + +enum + { + NCR_DSA_GEN_MPI_PRIME, + NCR_DSA_GEN_MPI_SUBPRIME, + NCR_DSA_GEN_MPI_BASE, + NCR_DSA_GEN_NUM_MPIS + }; + +CK_RV ncr_public_key_create_dsa (struct ncr_public_key **key, + const struct ncr_mpi + mpis[static NCR_DSA_PUBLIC_NUM_MPIS]); +CK_RV ncr_public_key_export_dsa (struct ncr_public_key *key, + struct ncr_mpi + mpis [static NCR_DSA_PUBLIC_NUM_MPIS]); +CK_RV ncr_private_key_create_dsa (struct ncr_private_key **key, _Bool sensitive, + const struct ncr_mpi + mpis[static NCR_DSA_PRIVATE_NUM_MPIS], + const struct ncr_mpi *public_value); +CK_RV ncr_private_key_export_dsa (struct ncr_private_key *key, + struct ncr_mpi + mpis[static NCR_DSA_PRIVATE_NUM_MPIS]); +CK_RV ncr_key_pair_generate_dsa (struct ncr_public_key **public_key, + struct ncr_private_key **private_key, + CK_MECHANISM_TYPE mech, _Bool sensitive, + const struct ncr_mpi + mpis[static NCR_DSA_GEN_NUM_MPIS]); + /* Asymmetric operations */ CK_RV ncr_public_key_encrypt (CK_MECHANISM_TYPE mech, -- cgit