Add pkcs12 plugin which adds support for decoding PKCS#12 containers
This commit is contained in:
@@ -15,10 +15,11 @@
|
||||
|
||||
#include "container.h"
|
||||
|
||||
ENUM(container_type_names, CONTAINER_PKCS7, CONTAINER_PKCS7_ENCRYPTED_DATA,
|
||||
ENUM(container_type_names, CONTAINER_PKCS7, CONTAINER_PKCS12,
|
||||
"PKCS7",
|
||||
"PKCS7_DATA",
|
||||
"PKCS7_SIGNED_DATA",
|
||||
"PKCS7_ENVELOPED_DATA",
|
||||
"PKCS7_ENCRYPTED_DATA",
|
||||
"PKCS12",
|
||||
);
|
||||
|
||||
@@ -44,6 +44,8 @@ enum container_type_t {
|
||||
CONTAINER_PKCS7_ENVELOPED_DATA,
|
||||
/** PKCS#7/CMS "encrypted-data" */
|
||||
CONTAINER_PKCS7_ENCRYPTED_DATA,
|
||||
/** A PKCS#12 container */
|
||||
CONTAINER_PKCS12,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,9 +21,11 @@
|
||||
#ifndef PKCS12_H_
|
||||
#define PKCS12_H_
|
||||
|
||||
#include <credentials/containers/container.h>
|
||||
#include <crypto/hashers/hasher.h>
|
||||
|
||||
typedef enum pkcs12_key_type_t pkcs12_key_type_t;
|
||||
typedef struct pkcs12_t pkcs12_t;
|
||||
|
||||
/**
|
||||
* The types of password based keys used by PKCS#12.
|
||||
@@ -34,6 +36,31 @@ enum pkcs12_key_type_t {
|
||||
PKCS12_KEY_MAC = 3,
|
||||
};
|
||||
|
||||
/**
|
||||
* PKCS#12/PFX container type.
|
||||
*/
|
||||
struct pkcs12_t {
|
||||
|
||||
/**
|
||||
* Implements container_t.
|
||||
*/
|
||||
container_t container;
|
||||
|
||||
/**
|
||||
* Create an enumerator over extracted certificates.
|
||||
*
|
||||
* @return enumerator over certificate_t
|
||||
*/
|
||||
enumerator_t* (*create_cert_enumerator)(pkcs12_t *this);
|
||||
|
||||
/**
|
||||
* Create an enumerator over extracted private keys.
|
||||
*
|
||||
* @return enumerator over private_key_t
|
||||
*/
|
||||
enumerator_t* (*create_key_enumerator)(pkcs12_t *this);
|
||||
};
|
||||
|
||||
/**
|
||||
* Derive the keys used in PKCS#12 for password integrity/privacy mode.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user