RSA BSAFE Micro Edition Suite

Streamlined security for mobile and embedded devices

Search  Print

r_pkey_mth.h

Go to the documentation of this file.
00001 /* $Id: r_pkey_mth.h,v 1.27 2005/07/25 06:11:44 itaylor Exp $ */
00002 /*
00003  * Copyright (C) 1998-2003 RSA Security Inc. All rights reserved.
00004  *
00005  * This work contains proprietary information of RSA Security.
00006  * Distribution is limited to authorized licensees of RSA
00007  * Security. Any unauthorized reproduction, distribution or
00008  * modification of this work is strictly prohibited.
00009  */
00010 
00017 #ifndef HEADER_COMMON_CERT_R_PKEY_MTH_H
00018 #define HEADER_COMMON_CERT_R_PKEY_MTH_H
00019 
00020 #ifdef  __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 #include "r_pkey.h"
00025 
00034 /* Defines for flags - implementation properties and features supported
00035  * for a given certificate (or certificate method).
00036  */
00040 #define R_PKEY_METHOD_FL_NONE           0x0000
00041 
00044 #define R_PKEY_METHOD_FL_NORMAL         0x0001
00045 
00048 #define R_PKEY_METHOD_FL_COMPACT        0x0002
00049 
00052 #define R_PKEY_METHOD_FL_SUPPORT_CONFIG 0x0004
00053 
00056 #define R_PKEY_METHOD_FL_SUPPORT_BIO    0x0008
00057 
00060 #define R_PKEY_METHOD_FL_SUPPORT_PEM    0x0010
00061 
00064 #define R_PKEY_METHOD_FL_SUPPORT_NAME   0x0020
00065 
00068 #define R_PKEY_METHOD_FL_ALLOCATED      0x1001
00069 
00072 #define R_PKEY_METHOD_FL_ALLOCATED_DATA 0x1002
00073 
00087 R_PKEY_METHOD * R_CDECL R_PKEY_get_method(R_PKEY *pkey);
00088 
00089 char * R_CDECL R_PKEY_METHOD_get_name(R_PKEY_METHOD *method);
00090 int R_CDECL R_PKEY_METHOD_get_type(R_PKEY_METHOD *method);
00091 int R_CDECL R_PKEY_METHOD_get_flag(R_PKEY_METHOD *method);
00092 int R_CDECL R_PKEY_METHOD_free(R_PKEY_METHOD *method);
00093 
00094 int R_CDECL R_PKEY_rsa_blinding_lib_start(R_RES_LIST *list, R_RES_ITEM *item,
00095     void **imp_data);
00096 int R_CDECL R_PKEY_rsa_no_blinding_lib_start(R_RES_LIST *list, R_RES_ITEM *item,
00097     void **imp_data);
00098 
00119 #define R_PKEY_RES_DH                                                   \
00120     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, R_PKEY_TYPE_DH,             \
00121       R_RES_FLAG_DEF, NULL, NULL, (void *(*)(void *))R_PKEY_pk_method,  \
00122       NULL }
00123 
00128 #define R_PKEY_RES_DSA                                                  \
00129     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, R_PKEY_TYPE_DSA,            \
00130       R_RES_FLAG_DEF, NULL, NULL, (void *(*)(void *))R_PKEY_pk_method,  \
00131       NULL }
00132 
00137 #ifdef FIPS140_ONLY
00138 /* Blinding cannot be set in FIPS140 shared library. It is always on. */
00139 #define R_PKEY_RES_RSA                                                  \
00140     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, R_PKEY_TYPE_RSA,            \
00141       R_RES_FLAG_DEF, NULL, NULL,                                       \
00142       (void *(*)(void *))R_PKEY_pk_method, NULL }
00143 #else /* ! FIPS140_ONLY */
00144 #define R_PKEY_RES_RSA                                                  \
00145     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, R_PKEY_TYPE_RSA,            \
00146       R_RES_FLAG_DEF, R_PKEY_rsa_blinding_lib_start, NULL,              \
00147       (void *(*)(void *))R_PKEY_pk_method, NULL }
00148 #endif /* FIPS140_ONLY */
00149 
00154 #define R_PKEY_RES_RSA_NO_BLINDING                                      \
00155     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, R_PKEY_TYPE_RSA,            \
00156       R_RES_FLAG_DEF, R_PKEY_rsa_no_blinding_lib_start, NULL,           \
00157       (void *(*)(void *))R_PKEY_pk_method, NULL }
00158 
00159 
00180 #define R_PKEY_RES_CUSTOM(start_fn, fin_fn, meth_fn, data_fn, type)     \
00181     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_DEF, type, R_RES_FLAG_DEF,       \
00182       (int (*)(R_RES_LIST *, R_RES_ITEM *, void **))(start_fn),         \
00183       (int (*)(R_RES_LIST *, R_RES_ITEM *, void **))(fin_fn),           \
00184       (void *(*)(void *))meth_fn, (void *(*)(void *))data_fn }
00185 
00186 #ifndef NO_BIO
00187 
00191 #define R_PKEY_RES_PRINT                                            \
00192     { R_RES_MOD_ID_PKEY, R_RES_IMPL_ID_PRINT_FUNC,                  \
00193       R_RES_SUB_ID_DEF, R_RES_FLAG_DEF, NULL, NULL, NULL,           \
00194       (void *(*)(void *))R_PKEY_get_print_func }
00195 #endif /* NO_BIO */
00196 
00201 #ifdef  __cplusplus
00202 }
00203 #endif
00204 
00205 #endif /* HEADER_COMMON_CERT_R_PKEY_MTH_H */
00206 

Copyright (c) 1999-2005 RSA Security Inc. All rights reserved. 072-001001-2100-001-000 - 2.1