Skip to content

Commit c3c7b11

Browse files
committed
refactor X509PrintSubjAltName
1 parent 018af47 commit c3c7b11

File tree

1 file changed

+17
-158
lines changed

1 file changed

+17
-158
lines changed

src/x509.c

Lines changed: 17 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -6099,7 +6099,6 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
60996099
#define MAX_WIDTH 80
61006100
#endif
61016101

6102-
#if defined(WOLFSSL_ACERT)
61036102
#define ACERT_NUM_DIR_TAGS 4
61046103

61056104
/* Convenience struct and function for printing the Holder sub fields
@@ -6209,9 +6208,8 @@ static int X509PrintDirType(char * dst, int max_len, const DNS_entry * entry)
62096208

62106209
return total_len;
62116210
}
6212-
6213-
static int X509_ACERT_print_name_entry(WOLFSSL_BIO* bio,
6214-
const DNS_entry* entry, int indent)
6211+
static int X509_print_name_entry(WOLFSSL_BIO* bio,
6212+
const DNS_entry* entry, int indent)
62156213
{
62166214
int ret = WOLFSSL_SUCCESS;
62176215
int nameCount = 0;
@@ -6242,68 +6240,43 @@ static int X509_ACERT_print_name_entry(WOLFSSL_BIO* bio,
62426240

62436241
if (entry->type == ASN_DNS_TYPE) {
62446242
len = XSNPRINTF(scratch, MAX_WIDTH, "DNS:%s", entry->name);
6245-
if (len >= MAX_WIDTH) {
6246-
ret = WOLFSSL_FAILURE;
6247-
break;
6248-
}
62496243
}
62506244
#if defined(OPENSSL_ALL) || defined(WOLFSSL_IP_ALT_NAME)
62516245
else if (entry->type == ASN_IP_TYPE) {
62526246
len = XSNPRINTF(scratch, MAX_WIDTH, "IP Address:%s",
62536247
entry->ipString);
6254-
if (len >= MAX_WIDTH) {
6255-
ret = WOLFSSL_FAILURE;
6256-
break;
6257-
}
62586248
}
62596249
#endif /* OPENSSL_ALL || WOLFSSL_IP_ALT_NAME */
62606250
else if (entry->type == ASN_RFC822_TYPE) {
62616251
len = XSNPRINTF(scratch, MAX_WIDTH, "email:%s",
62626252
entry->name);
6263-
if (len >= MAX_WIDTH) {
6264-
ret = WOLFSSL_FAILURE;
6265-
break;
6266-
}
62676253
}
62686254
else if (entry->type == ASN_DIR_TYPE) {
62696255
len = X509PrintDirType(scratch, MAX_WIDTH, entry);
6270-
if (len >= MAX_WIDTH) {
6271-
ret = WOLFSSL_FAILURE;
6272-
break;
6273-
}
62746256
}
62756257
else if (entry->type == ASN_URI_TYPE) {
62766258
len = XSNPRINTF(scratch, MAX_WIDTH, "URI:%s",
62776259
entry->name);
6278-
if (len >= MAX_WIDTH) {
6279-
ret = WOLFSSL_FAILURE;
6280-
break;
6281-
}
62826260
}
62836261
#if defined(OPENSSL_ALL)
62846262
else if (entry->type == ASN_RID_TYPE) {
62856263
len = XSNPRINTF(scratch, MAX_WIDTH, "Registered ID:%s",
62866264
entry->ridString);
6287-
if (len >= MAX_WIDTH) {
6288-
ret = WOLFSSL_FAILURE;
6289-
break;
6290-
}
62916265
}
62926266
#endif
62936267
else if (entry->type == ASN_OTHER_TYPE) {
62946268
len = XSNPRINTF(scratch, MAX_WIDTH,
62956269
"othername <unsupported>");
6296-
if (len >= MAX_WIDTH) {
6297-
ret = WOLFSSL_FAILURE;
6298-
break;
6299-
}
63006270
}
63016271
else {
63026272
WOLFSSL_MSG("Bad alt name type.");
63036273
ret = WOLFSSL_FAILURE;
63046274
break;
63056275
}
6306-
6276+
if (len >= MAX_WIDTH) {
6277+
ret = WOLFSSL_FAILURE;
6278+
break;
6279+
}
63076280
if (wolfSSL_BIO_write(bio, scratch, (int)XSTRLEN(scratch))
63086281
<= 0) {
63096282
ret = WOLFSSL_FAILURE;
@@ -6320,128 +6293,6 @@ static int X509_ACERT_print_name_entry(WOLFSSL_BIO* bio,
63206293
return ret;
63216294
}
63226295

6323-
#endif /* if WOLFSSL_ACERT*/
6324-
6325-
static int X509PrintSubjAltName(WOLFSSL_BIO* bio, WOLFSSL_X509* x509,
6326-
int indent)
6327-
{
6328-
int ret = WOLFSSL_SUCCESS;
6329-
DNS_entry* entry;
6330-
6331-
if (bio == NULL || x509 == NULL) {
6332-
ret = WOLFSSL_FAILURE;
6333-
}
6334-
6335-
if (ret == WOLFSSL_SUCCESS && x509->subjAltNameSet &&
6336-
x509->altNames != NULL) {
6337-
char scratch[MAX_WIDTH];
6338-
int len;
6339-
6340-
len = XSNPRINTF(scratch, MAX_WIDTH, "%*s", indent, "");
6341-
if (len >= MAX_WIDTH)
6342-
ret = WOLFSSL_FAILURE;
6343-
if (ret == WOLFSSL_SUCCESS) {
6344-
if (wolfSSL_BIO_write(bio, scratch, (int)XSTRLEN(scratch)) <= 0) {
6345-
ret = WOLFSSL_FAILURE;
6346-
}
6347-
}
6348-
if (ret == WOLFSSL_SUCCESS) {
6349-
int nameCount = 0;
6350-
6351-
entry = x509->altNames;
6352-
while (entry != NULL) {
6353-
++nameCount;
6354-
if (nameCount > 1) {
6355-
if (wolfSSL_BIO_write(bio, ", ", 2) <= 0) {
6356-
ret = WOLFSSL_FAILURE;
6357-
break;
6358-
}
6359-
}
6360-
6361-
if (entry->type == ASN_DNS_TYPE) {
6362-
len = XSNPRINTF(scratch, MAX_WIDTH, "DNS:%s", entry->name);
6363-
if (len >= MAX_WIDTH) {
6364-
ret = WOLFSSL_FAILURE;
6365-
break;
6366-
}
6367-
}
6368-
#ifdef WOLFSSL_IP_ALT_NAME
6369-
else if (entry->type == ASN_IP_TYPE) {
6370-
len = XSNPRINTF(scratch, MAX_WIDTH, "IP Address:%s",
6371-
entry->ipString);
6372-
if (len >= MAX_WIDTH) {
6373-
ret = WOLFSSL_FAILURE;
6374-
break;
6375-
}
6376-
}
6377-
#endif /* OPENSSL_ALL || WOLFSSL_IP_ALT_NAME */
6378-
else if (entry->type == ASN_RFC822_TYPE) {
6379-
len = XSNPRINTF(scratch, MAX_WIDTH, "email:%s",
6380-
entry->name);
6381-
if (len >= MAX_WIDTH) {
6382-
ret = WOLFSSL_FAILURE;
6383-
break;
6384-
}
6385-
}
6386-
else if (entry->type == ASN_DIR_TYPE) {
6387-
/* @TODO entry->name in ASN1 syntax */
6388-
len = XSNPRINTF(scratch, MAX_WIDTH,
6389-
"DirName:<print out not supported yet>");
6390-
if (len >= MAX_WIDTH) {
6391-
ret = WOLFSSL_FAILURE;
6392-
break;
6393-
}
6394-
}
6395-
else if (entry->type == ASN_URI_TYPE) {
6396-
len = XSNPRINTF(scratch, MAX_WIDTH, "URI:%s",
6397-
entry->name);
6398-
if (len >= MAX_WIDTH) {
6399-
ret = WOLFSSL_FAILURE;
6400-
break;
6401-
}
6402-
}
6403-
#if defined(OPENSSL_ALL)
6404-
else if (entry->type == ASN_RID_TYPE) {
6405-
len = XSNPRINTF(scratch, MAX_WIDTH, "Registered ID:%s",
6406-
entry->ridString);
6407-
if (len >= MAX_WIDTH) {
6408-
ret = WOLFSSL_FAILURE;
6409-
break;
6410-
}
6411-
}
6412-
#endif
6413-
else if (entry->type == ASN_OTHER_TYPE) {
6414-
len = XSNPRINTF(scratch, MAX_WIDTH,
6415-
"othername <unsupported>");
6416-
if (len >= MAX_WIDTH) {
6417-
ret = WOLFSSL_FAILURE;
6418-
break;
6419-
}
6420-
}
6421-
else {
6422-
WOLFSSL_MSG("Bad alt name type.");
6423-
ret = WOLFSSL_FAILURE;
6424-
break;
6425-
}
6426-
6427-
if (wolfSSL_BIO_write(bio, scratch, (int)XSTRLEN(scratch))
6428-
<= 0) {
6429-
ret = WOLFSSL_FAILURE;
6430-
break;
6431-
}
6432-
6433-
entry = entry->next;
6434-
}
6435-
}
6436-
6437-
if (ret == WOLFSSL_SUCCESS && wolfSSL_BIO_write(bio, "\n", 1) <= 0) {
6438-
ret = WOLFSSL_FAILURE;
6439-
}
6440-
}
6441-
6442-
return ret;
6443-
}
6444-
64456296
#ifdef XSNPRINTF
64466297
static int X509PrintKeyUsage(WOLFSSL_BIO* bio, WOLFSSL_X509* x509, int indent)
64476298
{
@@ -6711,6 +6562,14 @@ static int X509PrintValidity(WOLFSSL_BIO* bio, WOLFSSL_ASN1_TIME * notBefore,
67116562
}
67126563
#endif /* ifndef NO_ASN_TIME */
67136564

6565+
static int X509PrintSubjAltName(WOLFSSL_BIO* bio, WOLFSSL_X509* x509,
6566+
int indent)
6567+
{
6568+
if (!x509 || !x509->altNames || !x509->subjAltNameSet)
6569+
return WOLFSSL_FAILURE;
6570+
return X509_print_name_entry(bio, x509->altNames, indent);
6571+
}
6572+
67146573
/* iterate through certificate extensions printing them out in human readable
67156574
* form
67166575
* return WOLFSSL_SUCCESS on success
@@ -7586,7 +7445,7 @@ int wolfSSL_X509_ACERT_print(WOLFSSL_BIO* bio, WOLFSSL_X509_ACERT* x509)
75867445
return WOLFSSL_FAILURE;
75877446
}
75887447

7589-
if (X509_ACERT_print_name_entry(bio, x509->holderEntityName, 1)
7448+
if (X509_print_name_entry(bio, x509->holderEntityName, 1)
75907449
!= WOLFSSL_SUCCESS) {
75917450
return WOLFSSL_FAILURE;
75927451
}
@@ -7599,7 +7458,7 @@ int wolfSSL_X509_ACERT_print(WOLFSSL_BIO* bio, WOLFSSL_X509_ACERT* x509)
75997458
return WOLFSSL_FAILURE;
76007459
}
76017460

7602-
if (X509_ACERT_print_name_entry(bio, x509->holderIssuerName, 1)
7461+
if (X509_print_name_entry(bio, x509->holderIssuerName, 1)
76037462
!= WOLFSSL_SUCCESS) {
76047463
return WOLFSSL_FAILURE;
76057464
}
@@ -7617,7 +7476,7 @@ int wolfSSL_X509_ACERT_print(WOLFSSL_BIO* bio, WOLFSSL_X509_ACERT* x509)
76177476
}
76187477

76197478
if (x509->AttCertIssuerName != NULL) {
7620-
if (X509_ACERT_print_name_entry(bio, x509->AttCertIssuerName, 1)
7479+
if (X509_print_name_entry(bio, x509->AttCertIssuerName, 1)
76217480
!= WOLFSSL_SUCCESS) {
76227481
return WOLFSSL_FAILURE;
76237482
}

0 commit comments

Comments
 (0)