Ejemplo 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;
}
Ejemplo 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;
}
Ejemplo n.º 3
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
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;
	}