mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-04 13:14:45 +02:00
Use new RID function in asn=original
This commit is contained in:
@@ -12340,7 +12340,7 @@ static int GenerateDNSEntryIPString(DNS_entry* entry, void* heap)
|
|||||||
}
|
}
|
||||||
#endif /* OPENSSL_ALL || WOLFSSL_IP_ALT_NAME */
|
#endif /* OPENSSL_ALL || WOLFSSL_IP_ALT_NAME */
|
||||||
|
|
||||||
#if defined(OPENSSL_ALL) && defined(WOLFSSL_ASN_TEMPLATE)
|
#if defined(OPENSSL_ALL)
|
||||||
/* used to set the human readable string for the registeredID with an
|
/* used to set the human readable string for the registeredID with an
|
||||||
* ASN_RID_TYPE DNS entry
|
* ASN_RID_TYPE DNS entry
|
||||||
* return 0 on success
|
* return 0 on success
|
||||||
@@ -17544,7 +17544,55 @@ static int DecodeAltNames(const byte* input, word32 sz, DecodedCert* cert)
|
|||||||
length -= strLen;
|
length -= strLen;
|
||||||
idx += (word32)strLen;
|
idx += (word32)strLen;
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_QT || OPENSSL_ALL */
|
#endif /* WOLFSSL_QT || OPENSSL_ALL || WOLFSSL_IP_ALT_NAME */
|
||||||
|
#if defined(OPENSSL_ALL)
|
||||||
|
else if (current_byte == (ASN_CONTEXT_SPECIFIC | ASN_RID_TYPE)) {
|
||||||
|
DNS_entry* rid;
|
||||||
|
int strLen;
|
||||||
|
word32 lenStartIdx = idx;
|
||||||
|
WOLFSSL_MSG("Decoding Subject Alt. Name: Registered Id");
|
||||||
|
|
||||||
|
if (GetLength(input, &idx, &strLen, sz) < 0) {
|
||||||
|
WOLFSSL_MSG("\tfail: str length");
|
||||||
|
return ASN_PARSE_E;
|
||||||
|
}
|
||||||
|
length -= (idx - lenStartIdx);
|
||||||
|
/* check that strLen at index is not past input buffer */
|
||||||
|
if (strLen + idx > sz) {
|
||||||
|
return BUFFER_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
rid = AltNameNew(cert->heap);
|
||||||
|
if (rid == NULL) {
|
||||||
|
WOLFSSL_MSG("\tOut of Memory");
|
||||||
|
return MEMORY_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
rid->type = ASN_RID_TYPE;
|
||||||
|
rid->name = (char*)XMALLOC((size_t)strLen + 1, cert->heap,
|
||||||
|
DYNAMIC_TYPE_ALTNAME);
|
||||||
|
if (rid->name == NULL) {
|
||||||
|
WOLFSSL_MSG("\tOut of Memory");
|
||||||
|
XFREE(rid, cert->heap, DYNAMIC_TYPE_ALTNAME);
|
||||||
|
return MEMORY_E;
|
||||||
|
}
|
||||||
|
rid->len = strLen;
|
||||||
|
XMEMCPY(rid->name, &input[idx], strLen);
|
||||||
|
rid->name[strLen] = '\0';
|
||||||
|
|
||||||
|
if (GenerateDNSEntryRIDString(rid, cert->heap) != 0) {
|
||||||
|
WOLFSSL_MSG("\tOut of Memory for registerd Id string");
|
||||||
|
XFREE(rid->name, cert->heap, DYNAMIC_TYPE_ALTNAME);
|
||||||
|
XFREE(rid, cert->heap, DYNAMIC_TYPE_ALTNAME);
|
||||||
|
return MEMORY_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddAltName(cert, rid);
|
||||||
|
|
||||||
|
length -= strLen;
|
||||||
|
idx += (word32)strLen;
|
||||||
|
}
|
||||||
|
#endif /* OPENSSL_ALL */
|
||||||
#endif /* IGNORE_NAME_CONSTRAINTS */
|
#endif /* IGNORE_NAME_CONSTRAINTS */
|
||||||
else if (current_byte ==
|
else if (current_byte ==
|
||||||
(ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | ASN_OTHER_TYPE)) {
|
(ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | ASN_OTHER_TYPE)) {
|
||||||
|
Reference in New Issue
Block a user