gwenhywfar
4.3.3
|
00001 /*************************************************************************** 00002 begin : Mon May 07 2012 00003 copyright : (C) 2012 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * Please see toplevel file COPYING for license details * 00008 ***************************************************************************/ 00009 00010 00011 #ifndef GWEN_CRYPT_KEY_RSA_H 00012 #define GWEN_CRYPT_KEY_RSA_H 00013 00014 #include "cryptkey.h" 00015 #include <gwenhywfar/cryptkeyrsa.h> 00016 00017 00022 #define GWEN_CRYPT_KEYRSA_FLAGS_DIRECTSIGN 0x00000001 00023 00024 00025 #define GWEN_CRYPT_KEYRSA_MAX_KEYLENGTH 1024 00026 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 00040 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GeneratePair(unsigned int nbytes, 00041 int use65537e, 00042 GWEN_CRYPT_KEY **pPubKey, 00043 GWEN_CRYPT_KEY **pSecretKey); 00044 00045 00055 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GeneratePair2(unsigned int nbits, int use65537e, 00056 GWEN_CRYPT_KEY **pPubKey, 00057 GWEN_CRYPT_KEY **pSecretKey); 00058 00059 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_dup(const GWEN_CRYPT_KEY *k); 00060 00061 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromDb(GWEN_DB_NODE *db); 00062 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_toDb(const GWEN_CRYPT_KEY *k, GWEN_DB_NODE *db, int pub); 00063 00064 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetModulus(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00065 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetExponent(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00066 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetSecretExponent(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00067 00068 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromModExp(unsigned int nbytes, 00069 const uint8_t *pModulus, 00070 uint32_t lModulus, 00071 const uint8_t *pExponent, 00072 uint32_t lExponent); 00073 00074 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromModPrivExp(unsigned int nbytes, 00075 const uint8_t *pModulus, 00076 uint32_t lModulus, 00077 const uint8_t *pExponent, 00078 uint32_t lExponent, 00079 const uint8_t *pPrivExponent, 00080 uint32_t lPrivExponent); 00081 00082 GWENHYWFAR_API uint32_t GWEN_Crypt_KeyRsa_GetFlags(const GWEN_CRYPT_KEY *k); 00083 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_SetFlags(GWEN_CRYPT_KEY *k, uint32_t fl); 00084 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_AddFlags(GWEN_CRYPT_KEY *k, uint32_t fl); 00085 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_SubFlags(GWEN_CRYPT_KEY *k, uint32_t fl); 00086 00087 #ifdef __cplusplus 00088 } 00089 #endif 00090 00091 #endif 00092