Loading crypto/store/store.h +25 −8 Original line number Diff line number Diff line Loading @@ -135,12 +135,13 @@ const STORE_METHOD *STORE_File(void); or fetch */ typedef enum STORE_object_types { STORE_OBJECT_TYPE_X509_CERTIFICATE= 0x01, STORE_OBJECT_TYPE_X509_CRL= 0x02, STORE_OBJECT_TYPE_PRIVATE_KEY= 0x03, STORE_OBJECT_TYPE_PUBLIC_KEY= 0x04, STORE_OBJECT_TYPE_NUMBER= 0x05, STORE_OBJECT_TYPE_NUM= 0x05 /* The amount of known STORE_OBJECT_TYPE_X509_CERTIFICATE= 0x01, /* X509 * */ STORE_OBJECT_TYPE_X509_CRL= 0x02, /* X509_CRL * */ STORE_OBJECT_TYPE_PRIVATE_KEY= 0x03, /* EVP_PKEY * */ STORE_OBJECT_TYPE_PUBLIC_KEY= 0x04, /* EVP_PKEY * */ STORE_OBJECT_TYPE_NUMBER= 0x05, /* BIGNUM * */ STORE_OBJECT_TYPE_ARBITRARY= 0x06, /* BUF_MEM * */ STORE_OBJECT_TYPE_NUM= 0x06 /* The amount of known object types */ } STORE_OBJECT_TYPES; /* List of text strings corresponding to the object types. */ Loading Loading @@ -214,6 +215,7 @@ typedef struct STORE_OBJECT_st X509_CRL *crl; EVP_PKEY *key; BIGNUM *number; BUF_MEM *arbitrary; } data; } STORE_OBJECT; DECLARE_STACK_OF(STORE_OBJECT); Loading Loading @@ -275,7 +277,13 @@ int STORE_modify_number(STORE *e, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[]); BIGNUM *STORE_get_number(STORE *e, OPENSSL_ITEM attributes[]); int STORE_delete_number(STORE *e, BIGNUM *data, OPENSSL_ITEM attributes[]); int STORE_delete_number(STORE *e, OPENSSL_ITEM attributes[]); int STORE_store_arbitrary(STORE *e, BUF_MEM *data, OPENSSL_ITEM attributes[]); int STORE_modify_arbitrary(STORE *e, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[]); BUF_MEM *STORE_get_arbitrary(STORE *e, OPENSSL_ITEM attributes[]); int STORE_delete_arbitrary(STORE *e, OPENSSL_ITEM attributes[]); /* Create and manipulate methods */ Loading Loading @@ -394,6 +402,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_MEM_LIST_NEXT 136 #define STORE_F_MEM_LIST_START 137 #define STORE_F_MEM_STORE 138 #define STORE_F_STORE_ARBITRARY 157 #define STORE_F_STORE_ATTR_INFO_GET0_CSTR 139 #define STORE_F_STORE_ATTR_INFO_GET0_DN 140 #define STORE_F_STORE_ATTR_INFO_GET0_NUMBER 141 Loading @@ -408,6 +417,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_STORE_ATTR_INFO_SET_SHA1STR 150 #define STORE_F_STORE_CERTIFICATE 100 #define STORE_F_STORE_CRL 101 #define STORE_F_STORE_DELETE_ARBITRARY 158 #define STORE_F_STORE_DELETE_CERTIFICATE 102 #define STORE_F_STORE_DELETE_CRL 103 #define STORE_F_STORE_DELETE_NUMBER 104 Loading @@ -415,6 +425,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_STORE_DELETE_PUBLIC_KEY 106 #define STORE_F_STORE_GENERATE_CRL 107 #define STORE_F_STORE_GENERATE_KEY 108 #define STORE_F_STORE_GET_ARBITRARY 159 #define STORE_F_STORE_GET_CERTIFICATE 109 #define STORE_F_STORE_GET_CRL 110 #define STORE_F_STORE_GET_NUMBER 111 Loading Loading @@ -449,11 +460,13 @@ void ERR_load_STORE_strings(void); /* Reason codes. */ #define STORE_R_ALREADY_HAS_A_VALUE 127 #define STORE_R_FAILED_DELETING_ARBITRARY 132 #define STORE_R_FAILED_DELETING_CERTIFICATE 100 #define STORE_R_FAILED_DELETING_KEY 101 #define STORE_R_FAILED_DELETING_NUMBER 102 #define STORE_R_FAILED_GENERATING_CRL 103 #define STORE_R_FAILED_GENERATING_KEY 104 #define STORE_R_FAILED_GETTING_ARBITRARY 133 #define STORE_R_FAILED_GETTING_CERTIFICATE 105 #define STORE_R_FAILED_GETTING_KEY 106 #define STORE_R_FAILED_GETTING_NUMBER 107 Loading @@ -461,14 +474,17 @@ void ERR_load_STORE_strings(void); #define STORE_R_FAILED_LISTING_KEYS 109 #define STORE_R_FAILED_REVOKING_CERTIFICATE 110 #define STORE_R_FAILED_REVOKING_KEY 111 #define STORE_R_FAILED_STORING_ARBITRARY 134 #define STORE_R_FAILED_STORING_CERTIFICATE 112 #define STORE_R_FAILED_STORING_KEY 113 #define STORE_R_FAILED_STORING_NUMBER 114 #define STORE_R_NOT_IMPLEMENTED 128 #define STORE_R_NO_DELETE_ARBITRARY_FUNCTION 135 #define STORE_R_NO_DELETE_NUMBER_FUNCTION 115 #define STORE_R_NO_DELETE_OBJECT_FUNCTION 116 #define STORE_R_NO_GENERATE_CRL_FUNCTION 117 #define STORE_R_NO_GENERATE_OBJECT_FUNCTION 118 #define STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION 136 #define STORE_R_NO_GET_OBJECT_FUNCTION 119 #define STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION 120 #define STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION 131 Loading @@ -477,6 +493,7 @@ void ERR_load_STORE_strings(void); #define STORE_R_NO_LIST_OBJECT_START_FUNCTION 123 #define STORE_R_NO_REVOKE_OBJECT_FUNCTION 124 #define STORE_R_NO_STORE 129 #define STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION 137 #define STORE_R_NO_STORE_OBJECT_FUNCTION 125 #define STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION 126 #define STORE_R_NO_VALUE 130 Loading crypto/store/str_err.c +9 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_MEM_LIST_NEXT,0), "MEM_LIST_NEXT"}, {ERR_PACK(0,STORE_F_MEM_LIST_START,0), "MEM_LIST_START"}, {ERR_PACK(0,STORE_F_MEM_STORE,0), "MEM_STORE"}, {ERR_PACK(0,STORE_F_STORE_ARBITRARY,0), "STORE_ARBITRARY"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_CSTR,0), "STORE_ATTR_INFO_get0_cstr"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_DN,0), "STORE_ATTR_INFO_get0_dn"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_NUMBER,0), "STORE_ATTR_INFO_get0_number"}, Loading @@ -85,6 +86,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_SET_SHA1STR,0), "STORE_ATTR_INFO_set_sha1str"}, {ERR_PACK(0,STORE_F_STORE_CERTIFICATE,0), "STORE_CERTIFICATE"}, {ERR_PACK(0,STORE_F_STORE_CRL,0), "STORE_CRL"}, {ERR_PACK(0,STORE_F_STORE_DELETE_ARBITRARY,0), "STORE_delete_arbitrary"}, {ERR_PACK(0,STORE_F_STORE_DELETE_CERTIFICATE,0), "STORE_delete_certificate"}, {ERR_PACK(0,STORE_F_STORE_DELETE_CRL,0), "STORE_delete_crl"}, {ERR_PACK(0,STORE_F_STORE_DELETE_NUMBER,0), "STORE_delete_number"}, Loading @@ -92,6 +94,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_STORE_DELETE_PUBLIC_KEY,0), "STORE_delete_public_key"}, {ERR_PACK(0,STORE_F_STORE_GENERATE_CRL,0), "STORE_generate_crl"}, {ERR_PACK(0,STORE_F_STORE_GENERATE_KEY,0), "STORE_generate_key"}, {ERR_PACK(0,STORE_F_STORE_GET_ARBITRARY,0), "STORE_get_arbitrary"}, {ERR_PACK(0,STORE_F_STORE_GET_CERTIFICATE,0), "STORE_get_certificate"}, {ERR_PACK(0,STORE_F_STORE_GET_CRL,0), "STORE_get_crl"}, {ERR_PACK(0,STORE_F_STORE_GET_NUMBER,0), "STORE_get_number"}, Loading Loading @@ -129,11 +132,13 @@ static ERR_STRING_DATA STORE_str_functs[]= static ERR_STRING_DATA STORE_str_reasons[]= { {STORE_R_ALREADY_HAS_A_VALUE ,"already has a value"}, {STORE_R_FAILED_DELETING_ARBITRARY ,"failed deleting arbitrary"}, {STORE_R_FAILED_DELETING_CERTIFICATE ,"failed deleting certificate"}, {STORE_R_FAILED_DELETING_KEY ,"failed deleting key"}, {STORE_R_FAILED_DELETING_NUMBER ,"failed deleting number"}, {STORE_R_FAILED_GENERATING_CRL ,"failed generating crl"}, {STORE_R_FAILED_GENERATING_KEY ,"failed generating key"}, {STORE_R_FAILED_GETTING_ARBITRARY ,"failed getting arbitrary"}, {STORE_R_FAILED_GETTING_CERTIFICATE ,"failed getting certificate"}, {STORE_R_FAILED_GETTING_KEY ,"failed getting key"}, {STORE_R_FAILED_GETTING_NUMBER ,"failed getting number"}, Loading @@ -141,14 +146,17 @@ static ERR_STRING_DATA STORE_str_reasons[]= {STORE_R_FAILED_LISTING_KEYS ,"failed listing keys"}, {STORE_R_FAILED_REVOKING_CERTIFICATE ,"failed revoking certificate"}, {STORE_R_FAILED_REVOKING_KEY ,"failed revoking key"}, {STORE_R_FAILED_STORING_ARBITRARY ,"failed storing arbitrary"}, {STORE_R_FAILED_STORING_CERTIFICATE ,"failed storing certificate"}, {STORE_R_FAILED_STORING_KEY ,"failed storing key"}, {STORE_R_FAILED_STORING_NUMBER ,"failed storing number"}, {STORE_R_NOT_IMPLEMENTED ,"not implemented"}, {STORE_R_NO_DELETE_ARBITRARY_FUNCTION ,"no delete arbitrary function"}, {STORE_R_NO_DELETE_NUMBER_FUNCTION ,"no delete number function"}, {STORE_R_NO_DELETE_OBJECT_FUNCTION ,"no delete object function"}, {STORE_R_NO_GENERATE_CRL_FUNCTION ,"no generate crl function"}, {STORE_R_NO_GENERATE_OBJECT_FUNCTION ,"no generate object function"}, {STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION,"no get object arbitrary function"}, {STORE_R_NO_GET_OBJECT_FUNCTION ,"no get object function"}, {STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION ,"no get object number function"}, {STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION ,"no list object endp function"}, Loading @@ -157,6 +165,7 @@ static ERR_STRING_DATA STORE_str_reasons[]= {STORE_R_NO_LIST_OBJECT_START_FUNCTION ,"no list object start function"}, {STORE_R_NO_REVOKE_OBJECT_FUNCTION ,"no revoke object function"}, {STORE_R_NO_STORE ,"no store"}, {STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION,"no store object arbitrary function"}, {STORE_R_NO_STORE_OBJECT_FUNCTION ,"no store object function"}, {STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION ,"no store object number function"}, {STORE_R_NO_VALUE ,"no value"}, Loading crypto/store/str_lib.c +69 −1 Original line number Diff line number Diff line Loading @@ -970,7 +970,7 @@ BIGNUM *STORE_get_number(STORE *s, OPENSSL_ITEM attributes[]) return n; } int STORE_delete_number(STORE *s, BIGNUM *data, OPENSSL_ITEM attributes[]) int STORE_delete_number(STORE *s, OPENSSL_ITEM attributes[]) { check_store(s,STORE_F_STORE_DELETE_NUMBER, delete_object,STORE_R_NO_DELETE_NUMBER_FUNCTION); Loading @@ -984,6 +984,71 @@ int STORE_delete_number(STORE *s, BIGNUM *data, OPENSSL_ITEM attributes[]) return 1; } int store_arbitrary(STORE *s, BUF_MEM *data, OPENSSL_ITEM attributes[]) { STORE_OBJECT *object = STORE_OBJECT_new(); int i; check_store(s,STORE_F_STORE_ARBITRARY, store_object,STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION); if (!object) { STOREerr(STORE_F_STORE_ARBITRARY, ERR_R_MALLOC_FAILURE); return 0; } object->data.arbitrary = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_ARBITRARY, object, attributes); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_ARBITRARY, STORE_R_FAILED_STORING_ARBITRARY); return 0; } return 1; } BUF_MEM *STORE_get_arbitrary(STORE *s, OPENSSL_ITEM attributes[]) { STORE_OBJECT *object; BUF_MEM *b; check_store(s,STORE_F_STORE_GET_ARBITRARY, get_object,STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION); object = s->meth->get_object(s, STORE_OBJECT_TYPE_ARBITRARY, attributes); if (!object || !object->data.arbitrary) { STOREerr(STORE_F_STORE_GET_ARBITRARY, STORE_R_FAILED_GETTING_ARBITRARY); return 0; } b = object->data.arbitrary; object->data.arbitrary = NULL; STORE_OBJECT_free(object); return b; } int STORE_delete_arbitrary(STORE *s, OPENSSL_ITEM attributes[]) { check_store(s,STORE_F_STORE_DELETE_ARBITRARY, delete_object,STORE_R_NO_DELETE_ARBITRARY_FUNCTION); if (!s->meth->delete_object(s, STORE_OBJECT_TYPE_ARBITRARY, attributes)) { STOREerr(STORE_F_STORE_DELETE_ARBITRARY, STORE_R_FAILED_DELETING_ARBITRARY); return 0; } return 1; } STORE_OBJECT *STORE_OBJECT_new(void) { STORE_OBJECT *object = OPENSSL_malloc(sizeof(STORE_OBJECT)); Loading @@ -1008,6 +1073,9 @@ void STORE_OBJECT_free(STORE_OBJECT *data) case STORE_OBJECT_TYPE_NUMBER: BN_free(data->data.number); break; case STORE_OBJECT_TYPE_ARBITRARY: BUF_MEM_free(data->data.arbitrary); break; } OPENSSL_free(data); } Loading Loading
crypto/store/store.h +25 −8 Original line number Diff line number Diff line Loading @@ -135,12 +135,13 @@ const STORE_METHOD *STORE_File(void); or fetch */ typedef enum STORE_object_types { STORE_OBJECT_TYPE_X509_CERTIFICATE= 0x01, STORE_OBJECT_TYPE_X509_CRL= 0x02, STORE_OBJECT_TYPE_PRIVATE_KEY= 0x03, STORE_OBJECT_TYPE_PUBLIC_KEY= 0x04, STORE_OBJECT_TYPE_NUMBER= 0x05, STORE_OBJECT_TYPE_NUM= 0x05 /* The amount of known STORE_OBJECT_TYPE_X509_CERTIFICATE= 0x01, /* X509 * */ STORE_OBJECT_TYPE_X509_CRL= 0x02, /* X509_CRL * */ STORE_OBJECT_TYPE_PRIVATE_KEY= 0x03, /* EVP_PKEY * */ STORE_OBJECT_TYPE_PUBLIC_KEY= 0x04, /* EVP_PKEY * */ STORE_OBJECT_TYPE_NUMBER= 0x05, /* BIGNUM * */ STORE_OBJECT_TYPE_ARBITRARY= 0x06, /* BUF_MEM * */ STORE_OBJECT_TYPE_NUM= 0x06 /* The amount of known object types */ } STORE_OBJECT_TYPES; /* List of text strings corresponding to the object types. */ Loading Loading @@ -214,6 +215,7 @@ typedef struct STORE_OBJECT_st X509_CRL *crl; EVP_PKEY *key; BIGNUM *number; BUF_MEM *arbitrary; } data; } STORE_OBJECT; DECLARE_STACK_OF(STORE_OBJECT); Loading Loading @@ -275,7 +277,13 @@ int STORE_modify_number(STORE *e, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[]); BIGNUM *STORE_get_number(STORE *e, OPENSSL_ITEM attributes[]); int STORE_delete_number(STORE *e, BIGNUM *data, OPENSSL_ITEM attributes[]); int STORE_delete_number(STORE *e, OPENSSL_ITEM attributes[]); int STORE_store_arbitrary(STORE *e, BUF_MEM *data, OPENSSL_ITEM attributes[]); int STORE_modify_arbitrary(STORE *e, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[]); BUF_MEM *STORE_get_arbitrary(STORE *e, OPENSSL_ITEM attributes[]); int STORE_delete_arbitrary(STORE *e, OPENSSL_ITEM attributes[]); /* Create and manipulate methods */ Loading Loading @@ -394,6 +402,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_MEM_LIST_NEXT 136 #define STORE_F_MEM_LIST_START 137 #define STORE_F_MEM_STORE 138 #define STORE_F_STORE_ARBITRARY 157 #define STORE_F_STORE_ATTR_INFO_GET0_CSTR 139 #define STORE_F_STORE_ATTR_INFO_GET0_DN 140 #define STORE_F_STORE_ATTR_INFO_GET0_NUMBER 141 Loading @@ -408,6 +417,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_STORE_ATTR_INFO_SET_SHA1STR 150 #define STORE_F_STORE_CERTIFICATE 100 #define STORE_F_STORE_CRL 101 #define STORE_F_STORE_DELETE_ARBITRARY 158 #define STORE_F_STORE_DELETE_CERTIFICATE 102 #define STORE_F_STORE_DELETE_CRL 103 #define STORE_F_STORE_DELETE_NUMBER 104 Loading @@ -415,6 +425,7 @@ void ERR_load_STORE_strings(void); #define STORE_F_STORE_DELETE_PUBLIC_KEY 106 #define STORE_F_STORE_GENERATE_CRL 107 #define STORE_F_STORE_GENERATE_KEY 108 #define STORE_F_STORE_GET_ARBITRARY 159 #define STORE_F_STORE_GET_CERTIFICATE 109 #define STORE_F_STORE_GET_CRL 110 #define STORE_F_STORE_GET_NUMBER 111 Loading Loading @@ -449,11 +460,13 @@ void ERR_load_STORE_strings(void); /* Reason codes. */ #define STORE_R_ALREADY_HAS_A_VALUE 127 #define STORE_R_FAILED_DELETING_ARBITRARY 132 #define STORE_R_FAILED_DELETING_CERTIFICATE 100 #define STORE_R_FAILED_DELETING_KEY 101 #define STORE_R_FAILED_DELETING_NUMBER 102 #define STORE_R_FAILED_GENERATING_CRL 103 #define STORE_R_FAILED_GENERATING_KEY 104 #define STORE_R_FAILED_GETTING_ARBITRARY 133 #define STORE_R_FAILED_GETTING_CERTIFICATE 105 #define STORE_R_FAILED_GETTING_KEY 106 #define STORE_R_FAILED_GETTING_NUMBER 107 Loading @@ -461,14 +474,17 @@ void ERR_load_STORE_strings(void); #define STORE_R_FAILED_LISTING_KEYS 109 #define STORE_R_FAILED_REVOKING_CERTIFICATE 110 #define STORE_R_FAILED_REVOKING_KEY 111 #define STORE_R_FAILED_STORING_ARBITRARY 134 #define STORE_R_FAILED_STORING_CERTIFICATE 112 #define STORE_R_FAILED_STORING_KEY 113 #define STORE_R_FAILED_STORING_NUMBER 114 #define STORE_R_NOT_IMPLEMENTED 128 #define STORE_R_NO_DELETE_ARBITRARY_FUNCTION 135 #define STORE_R_NO_DELETE_NUMBER_FUNCTION 115 #define STORE_R_NO_DELETE_OBJECT_FUNCTION 116 #define STORE_R_NO_GENERATE_CRL_FUNCTION 117 #define STORE_R_NO_GENERATE_OBJECT_FUNCTION 118 #define STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION 136 #define STORE_R_NO_GET_OBJECT_FUNCTION 119 #define STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION 120 #define STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION 131 Loading @@ -477,6 +493,7 @@ void ERR_load_STORE_strings(void); #define STORE_R_NO_LIST_OBJECT_START_FUNCTION 123 #define STORE_R_NO_REVOKE_OBJECT_FUNCTION 124 #define STORE_R_NO_STORE 129 #define STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION 137 #define STORE_R_NO_STORE_OBJECT_FUNCTION 125 #define STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION 126 #define STORE_R_NO_VALUE 130 Loading
crypto/store/str_err.c +9 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_MEM_LIST_NEXT,0), "MEM_LIST_NEXT"}, {ERR_PACK(0,STORE_F_MEM_LIST_START,0), "MEM_LIST_START"}, {ERR_PACK(0,STORE_F_MEM_STORE,0), "MEM_STORE"}, {ERR_PACK(0,STORE_F_STORE_ARBITRARY,0), "STORE_ARBITRARY"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_CSTR,0), "STORE_ATTR_INFO_get0_cstr"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_DN,0), "STORE_ATTR_INFO_get0_dn"}, {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_GET0_NUMBER,0), "STORE_ATTR_INFO_get0_number"}, Loading @@ -85,6 +86,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_STORE_ATTR_INFO_SET_SHA1STR,0), "STORE_ATTR_INFO_set_sha1str"}, {ERR_PACK(0,STORE_F_STORE_CERTIFICATE,0), "STORE_CERTIFICATE"}, {ERR_PACK(0,STORE_F_STORE_CRL,0), "STORE_CRL"}, {ERR_PACK(0,STORE_F_STORE_DELETE_ARBITRARY,0), "STORE_delete_arbitrary"}, {ERR_PACK(0,STORE_F_STORE_DELETE_CERTIFICATE,0), "STORE_delete_certificate"}, {ERR_PACK(0,STORE_F_STORE_DELETE_CRL,0), "STORE_delete_crl"}, {ERR_PACK(0,STORE_F_STORE_DELETE_NUMBER,0), "STORE_delete_number"}, Loading @@ -92,6 +94,7 @@ static ERR_STRING_DATA STORE_str_functs[]= {ERR_PACK(0,STORE_F_STORE_DELETE_PUBLIC_KEY,0), "STORE_delete_public_key"}, {ERR_PACK(0,STORE_F_STORE_GENERATE_CRL,0), "STORE_generate_crl"}, {ERR_PACK(0,STORE_F_STORE_GENERATE_KEY,0), "STORE_generate_key"}, {ERR_PACK(0,STORE_F_STORE_GET_ARBITRARY,0), "STORE_get_arbitrary"}, {ERR_PACK(0,STORE_F_STORE_GET_CERTIFICATE,0), "STORE_get_certificate"}, {ERR_PACK(0,STORE_F_STORE_GET_CRL,0), "STORE_get_crl"}, {ERR_PACK(0,STORE_F_STORE_GET_NUMBER,0), "STORE_get_number"}, Loading Loading @@ -129,11 +132,13 @@ static ERR_STRING_DATA STORE_str_functs[]= static ERR_STRING_DATA STORE_str_reasons[]= { {STORE_R_ALREADY_HAS_A_VALUE ,"already has a value"}, {STORE_R_FAILED_DELETING_ARBITRARY ,"failed deleting arbitrary"}, {STORE_R_FAILED_DELETING_CERTIFICATE ,"failed deleting certificate"}, {STORE_R_FAILED_DELETING_KEY ,"failed deleting key"}, {STORE_R_FAILED_DELETING_NUMBER ,"failed deleting number"}, {STORE_R_FAILED_GENERATING_CRL ,"failed generating crl"}, {STORE_R_FAILED_GENERATING_KEY ,"failed generating key"}, {STORE_R_FAILED_GETTING_ARBITRARY ,"failed getting arbitrary"}, {STORE_R_FAILED_GETTING_CERTIFICATE ,"failed getting certificate"}, {STORE_R_FAILED_GETTING_KEY ,"failed getting key"}, {STORE_R_FAILED_GETTING_NUMBER ,"failed getting number"}, Loading @@ -141,14 +146,17 @@ static ERR_STRING_DATA STORE_str_reasons[]= {STORE_R_FAILED_LISTING_KEYS ,"failed listing keys"}, {STORE_R_FAILED_REVOKING_CERTIFICATE ,"failed revoking certificate"}, {STORE_R_FAILED_REVOKING_KEY ,"failed revoking key"}, {STORE_R_FAILED_STORING_ARBITRARY ,"failed storing arbitrary"}, {STORE_R_FAILED_STORING_CERTIFICATE ,"failed storing certificate"}, {STORE_R_FAILED_STORING_KEY ,"failed storing key"}, {STORE_R_FAILED_STORING_NUMBER ,"failed storing number"}, {STORE_R_NOT_IMPLEMENTED ,"not implemented"}, {STORE_R_NO_DELETE_ARBITRARY_FUNCTION ,"no delete arbitrary function"}, {STORE_R_NO_DELETE_NUMBER_FUNCTION ,"no delete number function"}, {STORE_R_NO_DELETE_OBJECT_FUNCTION ,"no delete object function"}, {STORE_R_NO_GENERATE_CRL_FUNCTION ,"no generate crl function"}, {STORE_R_NO_GENERATE_OBJECT_FUNCTION ,"no generate object function"}, {STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION,"no get object arbitrary function"}, {STORE_R_NO_GET_OBJECT_FUNCTION ,"no get object function"}, {STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION ,"no get object number function"}, {STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION ,"no list object endp function"}, Loading @@ -157,6 +165,7 @@ static ERR_STRING_DATA STORE_str_reasons[]= {STORE_R_NO_LIST_OBJECT_START_FUNCTION ,"no list object start function"}, {STORE_R_NO_REVOKE_OBJECT_FUNCTION ,"no revoke object function"}, {STORE_R_NO_STORE ,"no store"}, {STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION,"no store object arbitrary function"}, {STORE_R_NO_STORE_OBJECT_FUNCTION ,"no store object function"}, {STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION ,"no store object number function"}, {STORE_R_NO_VALUE ,"no value"}, Loading
crypto/store/str_lib.c +69 −1 Original line number Diff line number Diff line Loading @@ -970,7 +970,7 @@ BIGNUM *STORE_get_number(STORE *s, OPENSSL_ITEM attributes[]) return n; } int STORE_delete_number(STORE *s, BIGNUM *data, OPENSSL_ITEM attributes[]) int STORE_delete_number(STORE *s, OPENSSL_ITEM attributes[]) { check_store(s,STORE_F_STORE_DELETE_NUMBER, delete_object,STORE_R_NO_DELETE_NUMBER_FUNCTION); Loading @@ -984,6 +984,71 @@ int STORE_delete_number(STORE *s, BIGNUM *data, OPENSSL_ITEM attributes[]) return 1; } int store_arbitrary(STORE *s, BUF_MEM *data, OPENSSL_ITEM attributes[]) { STORE_OBJECT *object = STORE_OBJECT_new(); int i; check_store(s,STORE_F_STORE_ARBITRARY, store_object,STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION); if (!object) { STOREerr(STORE_F_STORE_ARBITRARY, ERR_R_MALLOC_FAILURE); return 0; } object->data.arbitrary = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_ARBITRARY, object, attributes); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_ARBITRARY, STORE_R_FAILED_STORING_ARBITRARY); return 0; } return 1; } BUF_MEM *STORE_get_arbitrary(STORE *s, OPENSSL_ITEM attributes[]) { STORE_OBJECT *object; BUF_MEM *b; check_store(s,STORE_F_STORE_GET_ARBITRARY, get_object,STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION); object = s->meth->get_object(s, STORE_OBJECT_TYPE_ARBITRARY, attributes); if (!object || !object->data.arbitrary) { STOREerr(STORE_F_STORE_GET_ARBITRARY, STORE_R_FAILED_GETTING_ARBITRARY); return 0; } b = object->data.arbitrary; object->data.arbitrary = NULL; STORE_OBJECT_free(object); return b; } int STORE_delete_arbitrary(STORE *s, OPENSSL_ITEM attributes[]) { check_store(s,STORE_F_STORE_DELETE_ARBITRARY, delete_object,STORE_R_NO_DELETE_ARBITRARY_FUNCTION); if (!s->meth->delete_object(s, STORE_OBJECT_TYPE_ARBITRARY, attributes)) { STOREerr(STORE_F_STORE_DELETE_ARBITRARY, STORE_R_FAILED_DELETING_ARBITRARY); return 0; } return 1; } STORE_OBJECT *STORE_OBJECT_new(void) { STORE_OBJECT *object = OPENSSL_malloc(sizeof(STORE_OBJECT)); Loading @@ -1008,6 +1073,9 @@ void STORE_OBJECT_free(STORE_OBJECT *data) case STORE_OBJECT_TYPE_NUMBER: BN_free(data->data.number); break; case STORE_OBJECT_TYPE_ARBITRARY: BUF_MEM_free(data->data.arbitrary); break; } OPENSSL_free(data); } Loading