use credential builder API to parse trusted public keys
This commit is contained in:
1 parent
d1b3e8607e
commit
64e77e8fbb
1 file changed
+11
-11
@@ -87,7 +87,7 @@ static id_match_t has_subject(private_pubkey_cert_t *this,
|
|||||||
{
|
{
|
||||||
return id->matches(id, subject);
|
return id->matches(id, subject);
|
||||||
}
|
}
|
||||||
return ID_MATCH_NONE;
|
return ID_MATCH_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -214,13 +214,6 @@ static pubkey_cert_t *pubkey_cert_create(public_key_t *key)
|
|||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|
||||||
static pubkey_cert_t *pubkey_cert_create_from_chunk(chunk_t blob)
|
|
||||||
{
|
|
||||||
public_key_t *key = pubkey_public_key_load(chunk_clone(blob));
|
|
||||||
|
|
||||||
return (key)? pubkey_cert_create(key) : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct private_builder_t private_builder_t;
|
typedef struct private_builder_t private_builder_t;
|
||||||
/**
|
/**
|
||||||
* Builder implementation for key loading
|
* Builder implementation for key loading
|
||||||
@@ -250,21 +243,28 @@ static void add(private_builder_t *this, builder_part_t part, ...)
|
|||||||
{
|
{
|
||||||
if (!this->key)
|
if (!this->key)
|
||||||
{
|
{
|
||||||
|
public_key_t *key;
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
switch (part)
|
switch (part)
|
||||||
{
|
{
|
||||||
case BUILD_BLOB_ASN1_DER:
|
case BUILD_BLOB_ASN1_DER:
|
||||||
{
|
{
|
||||||
va_start(args, part);
|
va_start(args, part);
|
||||||
this->key = pubkey_cert_create_from_chunk(va_arg(args, chunk_t));
|
key = lib->creds->create(lib->creds, CRED_PUBLIC_KEY, KEY_ANY,
|
||||||
|
va_arg(args, chunk_t));
|
||||||
|
if (key)
|
||||||
|
{
|
||||||
|
this->key = pubkey_cert_create(key);
|
||||||
|
}
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case BUILD_PUBLIC_KEY:
|
case BUILD_PUBLIC_KEY:
|
||||||
{
|
{
|
||||||
va_start(args, part);
|
va_start(args, part);
|
||||||
this->key = pubkey_cert_create(va_arg(args, public_key_t*));
|
key = va_arg(args, public_key_t*);
|
||||||
|
pubkey_cert_create(key->get_ref(key));
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user