📄 str_lib.c
字号:
EVP_PKEY *pkey; check_store(s,STORE_F_STORE_LIST_PRIVATE_KEY_NEXT, list_object_next,STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION); object = s->meth->list_object_next(s, handle); if (!object || !object->data.key || !object->data.key) { STOREerr(STORE_F_STORE_LIST_PRIVATE_KEY_NEXT, STORE_R_FAILED_LISTING_KEYS); return 0; } CRYPTO_add(&object->data.key->references,1,CRYPTO_LOCK_EVP_PKEY);#ifdef REF_PRINT REF_PRINT("EVP_PKEY",data);#endif pkey = object->data.key; STORE_OBJECT_free(object); return pkey; }int STORE_list_private_key_end(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_PRIVATE_KEY_END, list_object_end,STORE_R_NO_LIST_OBJECT_END_FUNCTION); if (!s->meth->list_object_end(s, handle)) { STOREerr(STORE_F_STORE_LIST_PRIVATE_KEY_END, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }int STORE_list_private_key_endp(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_PRIVATE_KEY_ENDP, list_object_endp,STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION); if (!s->meth->list_object_endp(s, handle)) { STOREerr(STORE_F_STORE_LIST_PRIVATE_KEY_ENDP, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }EVP_PKEY *STORE_get_public_key(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; EVP_PKEY *pkey; check_store(s,STORE_F_STORE_GET_PUBLIC_KEY, get_object,STORE_R_NO_GET_OBJECT_FUNCTION); object = s->meth->get_object(s, STORE_OBJECT_TYPE_PUBLIC_KEY, attributes, parameters); if (!object || !object->data.key || !object->data.key) { STOREerr(STORE_F_STORE_GET_PUBLIC_KEY, STORE_R_FAILED_GETTING_KEY); return 0; } CRYPTO_add(&object->data.key->references,1,CRYPTO_LOCK_EVP_PKEY);#ifdef REF_PRINT REF_PRINT("EVP_PKEY",data);#endif pkey = object->data.key; STORE_OBJECT_free(object); return pkey; }int STORE_store_public_key(STORE *s, EVP_PKEY *data, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; int i; check_store(s,STORE_F_STORE_STORE_PUBLIC_KEY, store_object,STORE_R_NO_STORE_OBJECT_FUNCTION); object = STORE_OBJECT_new(); if (!object) { STOREerr(STORE_F_STORE_STORE_PUBLIC_KEY, ERR_R_MALLOC_FAILURE); return 0; } object->data.key = EVP_PKEY_new(); if (!object->data.key) { STOREerr(STORE_F_STORE_STORE_PUBLIC_KEY, ERR_R_MALLOC_FAILURE); return 0; } CRYPTO_add(&data->references,1,CRYPTO_LOCK_EVP_PKEY);#ifdef REF_PRINT REF_PRINT("EVP_PKEY",data);#endif object->data.key = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_PUBLIC_KEY, object, attributes, parameters); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_STORE_PUBLIC_KEY, STORE_R_FAILED_STORING_KEY); return 0; } return i; }int STORE_modify_public_key(STORE *s, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_MODIFY_PUBLIC_KEY, modify_object,STORE_R_NO_MODIFY_OBJECT_FUNCTION); if (!s->meth->modify_object(s, STORE_OBJECT_TYPE_PUBLIC_KEY, search_attributes, add_attributes, modify_attributes, delete_attributes, parameters)) { STOREerr(STORE_F_STORE_MODIFY_PUBLIC_KEY, STORE_R_FAILED_MODIFYING_PUBLIC_KEY); return 0; } return 1; }int STORE_revoke_public_key(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { int i; check_store(s,STORE_F_STORE_REVOKE_PUBLIC_KEY, revoke_object,STORE_R_NO_REVOKE_OBJECT_FUNCTION); i = s->meth->revoke_object(s, STORE_OBJECT_TYPE_PUBLIC_KEY, attributes, parameters); if (!i) { STOREerr(STORE_F_STORE_REVOKE_PUBLIC_KEY, STORE_R_FAILED_REVOKING_KEY); return 0; } return i; }int STORE_delete_public_key(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_DELETE_PUBLIC_KEY, delete_object,STORE_R_NO_DELETE_OBJECT_FUNCTION); if (!s->meth->delete_object(s, STORE_OBJECT_TYPE_PUBLIC_KEY, attributes, parameters)) { STOREerr(STORE_F_STORE_DELETE_PUBLIC_KEY, STORE_R_FAILED_DELETING_KEY); return 0; } return 1; }void *STORE_list_public_key_start(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { void *handle; check_store(s,STORE_F_STORE_LIST_PUBLIC_KEY_START, list_object_start,STORE_R_NO_LIST_OBJECT_START_FUNCTION); handle = s->meth->list_object_start(s, STORE_OBJECT_TYPE_PUBLIC_KEY, attributes, parameters); if (!handle) { STOREerr(STORE_F_STORE_LIST_PUBLIC_KEY_START, STORE_R_FAILED_LISTING_KEYS); return 0; } return handle; }EVP_PKEY *STORE_list_public_key_next(STORE *s, void *handle) { STORE_OBJECT *object; EVP_PKEY *pkey; check_store(s,STORE_F_STORE_LIST_PUBLIC_KEY_NEXT, list_object_next,STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION); object = s->meth->list_object_next(s, handle); if (!object || !object->data.key || !object->data.key) { STOREerr(STORE_F_STORE_LIST_PUBLIC_KEY_NEXT, STORE_R_FAILED_LISTING_KEYS); return 0; } CRYPTO_add(&object->data.key->references,1,CRYPTO_LOCK_EVP_PKEY);#ifdef REF_PRINT REF_PRINT("EVP_PKEY",data);#endif pkey = object->data.key; STORE_OBJECT_free(object); return pkey; }int STORE_list_public_key_end(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_PUBLIC_KEY_END, list_object_end,STORE_R_NO_LIST_OBJECT_END_FUNCTION); if (!s->meth->list_object_end(s, handle)) { STOREerr(STORE_F_STORE_LIST_PUBLIC_KEY_END, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }int STORE_list_public_key_endp(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_PUBLIC_KEY_ENDP, list_object_endp,STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION); if (!s->meth->list_object_endp(s, handle)) { STOREerr(STORE_F_STORE_LIST_PUBLIC_KEY_ENDP, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }X509_CRL *STORE_generate_crl(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; X509_CRL *crl; check_store(s,STORE_F_STORE_GENERATE_CRL, generate_object,STORE_R_NO_GENERATE_CRL_FUNCTION); object = s->meth->generate_object(s, STORE_OBJECT_TYPE_X509_CRL, attributes, parameters); if (!object || !object->data.crl) { STOREerr(STORE_F_STORE_GENERATE_CRL, STORE_R_FAILED_GENERATING_CRL); return 0; } CRYPTO_add(&object->data.crl->references,1,CRYPTO_LOCK_X509_CRL);#ifdef REF_PRINT REF_PRINT("X509_CRL",data);#endif crl = object->data.crl; STORE_OBJECT_free(object); return crl; }X509_CRL *STORE_get_crl(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; X509_CRL *crl; check_store(s,STORE_F_STORE_GET_CRL, get_object,STORE_R_NO_GET_OBJECT_FUNCTION); object = s->meth->get_object(s, STORE_OBJECT_TYPE_X509_CRL, attributes, parameters); if (!object || !object->data.crl) { STOREerr(STORE_F_STORE_GET_CRL, STORE_R_FAILED_GETTING_KEY); return 0; } CRYPTO_add(&object->data.crl->references,1,CRYPTO_LOCK_X509_CRL);#ifdef REF_PRINT REF_PRINT("X509_CRL",data);#endif crl = object->data.crl; STORE_OBJECT_free(object); return crl; }int STORE_store_crl(STORE *s, X509_CRL *data, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; int i; check_store(s,STORE_F_STORE_STORE_CRL, store_object,STORE_R_NO_STORE_OBJECT_FUNCTION); object = STORE_OBJECT_new(); if (!object) { STOREerr(STORE_F_STORE_STORE_CRL, ERR_R_MALLOC_FAILURE); return 0; } CRYPTO_add(&data->references,1,CRYPTO_LOCK_X509_CRL);#ifdef REF_PRINT REF_PRINT("X509_CRL",data);#endif object->data.crl = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_X509_CRL, object, attributes, parameters); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_STORE_CRL, STORE_R_FAILED_STORING_KEY); return 0; } return i; }int STORE_modify_crl(STORE *s, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_MODIFY_CRL, modify_object,STORE_R_NO_MODIFY_OBJECT_FUNCTION); if (!s->meth->modify_object(s, STORE_OBJECT_TYPE_X509_CRL, search_attributes, add_attributes, modify_attributes, delete_attributes, parameters)) { STOREerr(STORE_F_STORE_MODIFY_CRL, STORE_R_FAILED_MODIFYING_CRL); return 0; } return 1; }int STORE_delete_crl(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_DELETE_CRL, delete_object,STORE_R_NO_DELETE_OBJECT_FUNCTION); if (!s->meth->delete_object(s, STORE_OBJECT_TYPE_X509_CRL, attributes, parameters)) { STOREerr(STORE_F_STORE_DELETE_CRL, STORE_R_FAILED_DELETING_KEY); return 0; } return 1; }void *STORE_list_crl_start(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { void *handle; check_store(s,STORE_F_STORE_LIST_CRL_START, list_object_start,STORE_R_NO_LIST_OBJECT_START_FUNCTION); handle = s->meth->list_object_start(s, STORE_OBJECT_TYPE_X509_CRL, attributes, parameters); if (!handle) { STOREerr(STORE_F_STORE_LIST_CRL_START, STORE_R_FAILED_LISTING_KEYS); return 0; } return handle; }X509_CRL *STORE_list_crl_next(STORE *s, void *handle) { STORE_OBJECT *object; X509_CRL *crl; check_store(s,STORE_F_STORE_LIST_CRL_NEXT, list_object_next,STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION); object = s->meth->list_object_next(s, handle); if (!object || !object->data.crl) { STOREerr(STORE_F_STORE_LIST_CRL_NEXT, STORE_R_FAILED_LISTING_KEYS); return 0; } CRYPTO_add(&object->data.crl->references,1,CRYPTO_LOCK_X509_CRL);#ifdef REF_PRINT REF_PRINT("X509_CRL",data);#endif crl = object->data.crl; STORE_OBJECT_free(object); return crl; }int STORE_list_crl_end(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_CRL_END, list_object_end,STORE_R_NO_LIST_OBJECT_END_FUNCTION); if (!s->meth->list_object_end(s, handle)) { STOREerr(STORE_F_STORE_LIST_CRL_END, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }int STORE_list_crl_endp(STORE *s, void *handle) { check_store(s,STORE_F_STORE_LIST_CRL_ENDP, list_object_endp,STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION); if (!s->meth->list_object_endp(s, handle)) { STOREerr(STORE_F_STORE_LIST_CRL_ENDP, STORE_R_FAILED_LISTING_KEYS); return 0; } return 1; }int STORE_store_number(STORE *s, BIGNUM *data, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; int i; check_store(s,STORE_F_STORE_STORE_NUMBER, store_object,STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION); object = STORE_OBJECT_new(); if (!object) { STOREerr(STORE_F_STORE_STORE_NUMBER, ERR_R_MALLOC_FAILURE); return 0; } object->data.number = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_NUMBER, object, attributes, parameters); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_STORE_NUMBER, STORE_R_FAILED_STORING_NUMBER); return 0; } return 1; }int STORE_modify_number(STORE *s, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_MODIFY_NUMBER, modify_object,STORE_R_NO_MODIFY_OBJECT_FUNCTION); if (!s->meth->modify_object(s, STORE_OBJECT_TYPE_NUMBER, search_attributes, add_attributes, modify_attributes, delete_attributes, parameters)) { STOREerr(STORE_F_STORE_MODIFY_NUMBER, STORE_R_FAILED_MODIFYING_NUMBER); return 0; } return 1; }BIGNUM *STORE_get_number(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; BIGNUM *n; check_store(s,STORE_F_STORE_GET_NUMBER, get_object,STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION); object = s->meth->get_object(s, STORE_OBJECT_TYPE_NUMBER, attributes, parameters); if (!object || !object->data.number) { STOREerr(STORE_F_STORE_GET_NUMBER, STORE_R_FAILED_GETTING_NUMBER); return 0; } n = object->data.number; object->data.number = NULL; STORE_OBJECT_free(object); return n; }int STORE_delete_number(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_DELETE_NUMBER, delete_object,STORE_R_NO_DELETE_NUMBER_FUNCTION); if (!s->meth->delete_object(s, STORE_OBJECT_TYPE_NUMBER, attributes, parameters)) { STOREerr(STORE_F_STORE_DELETE_NUMBER, STORE_R_FAILED_DELETING_NUMBER); return 0; } return 1; }int STORE_store_arbitrary(STORE *s, BUF_MEM *data, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { STORE_OBJECT *object; int i; check_store(s,STORE_F_STORE_STORE_ARBITRARY, store_object,STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION); object = STORE_OBJECT_new(); if (!object) { STOREerr(STORE_F_STORE_STORE_ARBITRARY, ERR_R_MALLOC_FAILURE); return 0; } object->data.arbitrary = data; i = s->meth->store_object(s, STORE_OBJECT_TYPE_ARBITRARY, object, attributes, parameters); STORE_OBJECT_free(object); if (!i) { STOREerr(STORE_F_STORE_STORE_ARBITRARY, STORE_R_FAILED_STORING_ARBITRARY); return 0; } return 1; }int STORE_modify_arbitrary(STORE *s, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]) { check_store(s,STORE_F_STORE_MODIFY_ARBITRARY, modify_object,STORE_R_NO_MODIFY_OBJECT_FUNCTION); if (!s->meth->modify_object(s, STORE_OBJECT_TYPE_ARBITRARY, search_attributes, add_attributes, modify_attributes, delete_attributes, parameters)) { STOREerr(STORE_F_STORE_MODIFY_ARBITRARY, STORE_R_FAILED_MODIFYING_ARBITRARY); return 0; } return 1; }BUF_MEM *STORE_get_arbitrary(STORE *s, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]) { 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, parameters); 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[], OPENSSL_ITEM parameters[]) { 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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -