gwenhywfar
4.3.1
|
00001 /*************************************************************************** 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $ 00005 begin : Wed Mar 16 2005 00006 copyright : (C) 2005 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * Please see toplevel file COPYING for license details * 00011 ***************************************************************************/ 00012 00013 00014 #ifndef GWEN_CRYPT_KEY_RSA_H 00015 #define GWEN_CRYPT_KEY_RSA_H 00016 00017 #include "cryptkey.h" 00018 00019 00024 #define GWEN_CRYPT_KEYRSA_FLAGS_DIRECTSIGN 0x00000001 00025 00026 00027 #define GWEN_CRYPT_KEYRSA_MAX_KEYLENGTH 1024 00028 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 00042 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GeneratePair(unsigned int nbytes, 00043 int use65537e, 00044 GWEN_CRYPT_KEY **pPubKey, 00045 GWEN_CRYPT_KEY **pSecretKey); 00046 00047 00057 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GeneratePair2(unsigned int nbits, int use65537e, 00058 GWEN_CRYPT_KEY **pPubKey, 00059 GWEN_CRYPT_KEY **pSecretKey); 00060 00061 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_dup(const GWEN_CRYPT_KEY *k); 00062 00063 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromDb(GWEN_DB_NODE *db); 00064 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_toDb(const GWEN_CRYPT_KEY *k, GWEN_DB_NODE *db, int pub); 00065 00066 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetModulus(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00067 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetExponent(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00068 GWENHYWFAR_API int GWEN_Crypt_KeyRsa_GetSecretExponent(const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen); 00069 00070 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromModExp(unsigned int nbytes, 00071 const uint8_t *pModulus, 00072 uint32_t lModulus, 00073 const uint8_t *pExponent, 00074 uint32_t lExponent); 00075 00076 GWENHYWFAR_API GWEN_CRYPT_KEY *GWEN_Crypt_KeyRsa_fromModPrivExp(unsigned int nbytes, 00077 const uint8_t *pModulus, 00078 uint32_t lModulus, 00079 const uint8_t *pExponent, 00080 uint32_t lExponent, 00081 const uint8_t *pPrivExponent, 00082 uint32_t lPrivExponent); 00083 00084 GWENHYWFAR_API uint32_t GWEN_Crypt_KeyRsa_GetFlags(const GWEN_CRYPT_KEY *k); 00085 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_SetFlags(GWEN_CRYPT_KEY *k, 00086 uint32_t fl); 00087 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_AddFlags(GWEN_CRYPT_KEY *k, 00088 uint32_t fl); 00089 GWENHYWFAR_API void GWEN_Crypt_KeyRsa_SubFlags(GWEN_CRYPT_KEY *k, 00090 uint32_t fl); 00091 00092 #ifdef __cplusplus 00093 } 00094 #endif 00095 00096 #endif 00097