#include "pkcs12Parsed.h"
#include <string.h>
P12KnownBlobs::P12KnownBlobs(
SecNssCoder &coder)
: mBlobs(NULL), mNumBlobs(0), mCoder(coder)
{
}
void P12KnownBlobs::addBlob(
const CSSM_DATA &blob)
{
CSSM_DATA *newBlobs =
(CSSM_DATA *)mCoder.malloc((mNumBlobs + 1) * sizeof(CSSM_DATA));
memmove(newBlobs, mBlobs, mNumBlobs * sizeof(CSSM_DATA));
newBlobs[mNumBlobs++] = blob;
mBlobs = newBlobs;
}
P12UnknownBlob::P12UnknownBlob(
const CSSM_DATA &blob,
const char *descr)
{
mBlob = blob;
mOid.Data = NULL;
mOid.Length = 0;
strcpy(mDescr, descr);
}
P12UnknownBlob::P12UnknownBlob(
const CSSM_DATA &blob,
const CSSM_OID &oid)
{
mBlob = blob;
mOid = oid;
mDescr[0] = '\0';
}
P12UnknownBlobs::P12UnknownBlobs(
SecNssCoder &coder)
: mBlobs(NULL), mNumBlobs(0), mCoder(coder)
{
}
P12UnknownBlobs::~P12UnknownBlobs()
{
for(unsigned dex=0; dex<mNumBlobs; dex++) {
delete mBlobs[dex];
}
}
void P12UnknownBlobs::addBlob(
P12UnknownBlob *blob)
{
P12UnknownBlob **newBlobs =
(P12UnknownBlob **)mCoder.malloc((mNumBlobs + 1) *
sizeof(P12UnknownBlob *));
memmove(newBlobs, mBlobs, mNumBlobs * sizeof(P12UnknownBlob *));
newBlobs[mNumBlobs++] = blob;
mBlobs = newBlobs;
}
P12Parsed::P12Parsed(SecNssCoder &coder)
: mCoder(coder), mCerts(coder), mCrls(coder), mUnknown(coder)
{
}