Beispiel #1
0
int sc_pkcs15emu_initialize_private_keys(sc_pkcs15_card_t *p15card, p15data_items* items) {
	const prdata *prkeys = items->private_keys;
	int i, r;
	if(!prkeys) return SC_SUCCESS;
	/* set private keys */
	for (i = 0; prkeys[i].label; i++) {
		r = add_private_key(p15card, &prkeys[i], 0, 0);
		if (r < 0)
			SC_FUNC_RETURN(p15card->card->ctx, SC_LOG_DEBUG_NORMAL, r);
	}
	return SC_SUCCESS;
}
Beispiel #2
0
/*
 * Actually work out what we are doing 
 */
static int do_obj(SSL_CTX *ssl_ctx, int obj_type, 
                    SSLObjLoader *ssl_obj, const char *password)
{
    int ret = SSL_OK;

    switch (obj_type)
    {
        case SSL_OBJ_RSA_KEY:
            ret = add_private_key(ssl_ctx, ssl_obj);
            break;

        case SSL_OBJ_X509_CERT:
            ret = add_cert(ssl_ctx, ssl_obj->buf, ssl_obj->len);
            break;

#ifdef CONFIG_SSL_CERT_VERIFICATION
        case SSL_OBJ_X509_CACERT:
            add_cert_auth(ssl_ctx, ssl_obj->buf, ssl_obj->len);
            break;
#endif

#ifdef CONFIG_SSL_USE_PKCS12
        case SSL_OBJ_PKCS8:
            ret = pkcs8_decode(ssl_ctx, ssl_obj, password);
            break;

        case SSL_OBJ_PKCS12:
            ret = pkcs12_decode(ssl_ctx, ssl_obj, password);
            break;
#endif
        default:
#ifdef CONFIG_SSL_FULL_MODE
            printf("%s", unsupported_str);
#endif
            ret = SSL_ERROR_NOT_SUPPORTED;
            break;
    }

    return ret;
}