gwenhywfar  4.3.3
cryptkeyrsa.h
Go to the documentation of this file.
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