Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
	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;
}
Exemplo n.º 3
0
int
STORE_store_certificate(STORE *s, X509 *data, OPENSSL_ITEM attributes[],
    OPENSSL_ITEM parameters[])
{
	STORE_OBJECT *object;
	int i;

	check_store(s, STORE_F_STORE_CERTIFICATE,
	    store_object, STORE_R_NO_STORE_OBJECT_FUNCTION);

	object = STORE_OBJECT_new();
	if (!object) {
		STOREerr(STORE_F_STORE_STORE_CERTIFICATE,
		    ERR_R_MALLOC_FAILURE);
		return 0;
	}

	CRYPTO_add(&data->references, 1, CRYPTO_LOCK_X509);
	object->data.x509.certificate = data;

	i = s->meth->store_object(s, STORE_OBJECT_TYPE_X509_CERTIFICATE,
	    object, attributes, parameters);

	STORE_OBJECT_free(object);

	if (!i) {
		STOREerr(STORE_F_STORE_STORE_CERTIFICATE,
		    STORE_R_FAILED_STORING_CERTIFICATE);
		return 0;
	}
	return 1;
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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;
	}
Exemplo n.º 6
0
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;
	}
Exemplo n.º 7
0
X509 *STORE_get_certificate(STORE *s, OPENSSL_ITEM attributes[],
	OPENSSL_ITEM parameters[])
	{
	STORE_OBJECT *object;
	X509 *x;

	check_store(s,STORE_F_STORE_GET_CERTIFICATE,
		get_object,STORE_R_NO_GET_OBJECT_FUNCTION);

	object = s->meth->get_object(s, STORE_OBJECT_TYPE_X509_CERTIFICATE,
		attributes, parameters);
	if (!object || !object->data.x509.certificate)
		{
		STOREerr(STORE_F_STORE_GET_CERTIFICATE,
			STORE_R_FAILED_GETTING_CERTIFICATE);
		return 0;
		}
	CRYPTO_add(&object->data.x509.certificate->references,1,CRYPTO_LOCK_X509);
#ifdef REF_PRINT
	REF_PRINT("X509",data);
#endif
	x = object->data.x509.certificate;
	STORE_OBJECT_free(object);
	return x;
	}
Exemplo n.º 8
0
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;
	}
Exemplo n.º 9
0
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);
	crl = object->data.crl;
	STORE_OBJECT_free(object);
	return crl;
}
Exemplo n.º 10
0
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) {
		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);
	pkey = object->data.key;
	STORE_OBJECT_free(object);
	return pkey;
}
Exemplo n.º 11
0
X509 *STORE_list_certificate_next(STORE *s, void *handle)
	{
	STORE_OBJECT *object;
	X509 *x;

	check_store(s,STORE_F_STORE_LIST_CERTIFICATE_NEXT,
		list_object_next,STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION);

	object = s->meth->list_object_next(s, handle);
	if (!object || !object->data.x509.certificate)
		{
		STOREerr(STORE_F_STORE_LIST_CERTIFICATE_NEXT,
			STORE_R_FAILED_LISTING_CERTIFICATES);
		return 0;
		}
	CRYPTO_add(&object->data.x509.certificate->references,1,CRYPTO_LOCK_X509);
	x = object->data.x509.certificate;
	STORE_OBJECT_free(object);
	return x;
	}
Exemplo n.º 12
0
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);
	crl = object->data.crl;
	STORE_OBJECT_free(object);
	return crl;
}
Exemplo n.º 13
0
EVP_PKEY *
STORE_generate_key(STORE *s, OPENSSL_ITEM attributes[],
    OPENSSL_ITEM parameters[])
{
	STORE_OBJECT *object;
	EVP_PKEY *pkey;

	check_store(s, STORE_F_STORE_GENERATE_KEY,
	    generate_object, STORE_R_NO_GENERATE_OBJECT_FUNCTION);

	object = s->meth->generate_object(s, STORE_OBJECT_TYPE_PRIVATE_KEY,
	    attributes, parameters);
	if (!object || !object->data.key) {
		STOREerr(STORE_F_STORE_GENERATE_KEY,
		    STORE_R_FAILED_GENERATING_KEY);
		return 0;
	}
	CRYPTO_add(&object->data.key->references, 1, CRYPTO_LOCK_EVP_PKEY);
	pkey = object->data.key;
	STORE_OBJECT_free(object);
	return pkey;
}
Exemplo n.º 14
0
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;
}
Exemplo n.º 15
0
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;
}
Exemplo n.º 16
0
EVP_PKEY *STORE_list_private_key_next(STORE *s, void *handle)
	{
	STORE_OBJECT *object;
	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;
	}