turn CA signer list into CA signer hash table, defaults CA_TABLE_SIZE to 11

This commit is contained in:
toddouska
2013-04-25 15:36:33 -07:00
parent 9dbf6a5e10
commit 05dd84598b
4 changed files with 67 additions and 33 deletions

View File

@@ -2801,6 +2801,7 @@ int ParseCertRelative(DecodedCert* cert, int type, int verify, void* cm)
}
/* Create and init an new signer */
Signer* MakeSigner(void* heap)
{
Signer* signer = (Signer*) XMALLOC(sizeof(Signer), heap,
@@ -2816,21 +2817,34 @@ Signer* MakeSigner(void* heap)
}
void FreeSigners(Signer* signer, void* heap)
/* Free an individual signer */
void FreeSigner(Signer* signer, void* heap)
{
while (signer) {
Signer* next = signer->next;
XFREE(signer->name, heap, DYNAMIC_TYPE_SUBJECT_CN);
XFREE(signer->publicKey, heap, DYNAMIC_TYPE_PUBLIC_KEY);
XFREE(signer, heap, DYNAMIC_TYPE_SIGNER);
XFREE(signer->name, heap, DYNAMIC_TYPE_SUBJECT_CN);
XFREE(signer->publicKey, heap, DYNAMIC_TYPE_PUBLIC_KEY);
XFREE(signer, heap, DYNAMIC_TYPE_SIGNER);
signer = next;
}
(void)heap;
}
/* Free the whole singer table with number of rows */
void FreeSignerTable(Signer** table, int rows, void* heap)
{
int i;
for (i = 0; i < rows; i++) {
Signer* signer = table[i];
while (signer) {
Signer* next = signer->next;
FreeSigner(signer, heap);
signer = next;
}
table[i] = NULL;
}
}
#if defined(CYASSL_KEY_GEN) || defined(CYASSL_CERT_GEN)
static int SetMyVersion(word32 version, byte* output, int header)