@@ -4353,7 +4353,9 @@ static const byte dnsSRVOid[] = {43, 6, 1, 5, 5, 7, 8, 7};
4353
4353
defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
4354
4354
defined(WOLFSSL_ASN_TEMPLATE)
4355
4355
/* Pilot attribute types (0.9.2342.19200300.100.1.*) */
4356
- static const byte uidOid[] = {9, 146, 38, 137, 147, 242, 44, 100, 1, 1}; /* user id */
4356
+ #define PLT_ATTR_TYPE_OID_BASE(num) {9, 146, 38, 137, 147, 242, 44, 100, 1, num}
4357
+ static const byte uidOid[] = PLT_ATTR_TYPE_OID_BASE(1); /* user id */
4358
+ static const byte fvrtDrk[] = PLT_ATTR_TYPE_OID_BASE(5);/* favourite drink*/
4357
4359
#endif
4358
4360
4359
4361
#if defined(WOLFSSL_CERT_GEN) || \
@@ -12408,6 +12410,15 @@ static int GetRDN(DecodedCert* cert, char* full, word32* idx, int* nid,
12408
12410
*nid = NID_domainComponent;
12409
12411
#endif
12410
12412
}
12413
+ else if (oidSz == sizeof(fvrtDrk) && XMEMCMP(oid, fvrtDrk, oidSz) == 0) {
12414
+ /* Set the favourite drink, type string, length and NID. */
12415
+ id = ASN_FAVOURITE_DRINK;
12416
+ typeStr = WOLFSSL_FAVOURITE_DRINK;
12417
+ typeStrLen = sizeof(WOLFSSL_FAVOURITE_DRINK) - 1;
12418
+ #ifdef WOLFSSL_X509_NAME_AVAILABLE
12419
+ *nid = NID_favouriteDrink;
12420
+ #endif
12421
+ }
12411
12422
/* Other OIDs that start with the same values. */
12412
12423
else if (oidSz == sizeof(dcOid) && XMEMCMP(oid, dcOid, oidSz-1) == 0) {
12413
12424
WOLFSSL_MSG("Unknown pilot attribute type");
@@ -25806,6 +25817,10 @@ static int EncodeName(EncodedName* name, const char* nameStr,
25806
25817
thisLen += (int)sizeof(uidOid);
25807
25818
firstSz = (int)sizeof(uidOid);
25808
25819
break;
25820
+ case ASN_FAVOURITE_DRINK:
25821
+ thisLen += (int)sizeof(fvrtDrk);
25822
+ firstSz = (int)sizeof(fvrtDrk);
25823
+ break;
25809
25824
#ifdef WOLFSSL_CUSTOM_OID
25810
25825
case ASN_CUSTOM_NAME:
25811
25826
thisLen += cname->custom.oidSz;
@@ -25861,6 +25876,12 @@ static int EncodeName(EncodedName* name, const char* nameStr,
25861
25876
/* str type */
25862
25877
name->encoded[idx++] = nameTag;
25863
25878
break;
25879
+ case ASN_FAVOURITE_DRINK:
25880
+ XMEMCPY(name->encoded + idx, fvrtDrk, sizeof(fvrtDrk));
25881
+ idx += (int)sizeof(fvrtDrk);
25882
+ /* str type */
25883
+ name->encoded[idx++] = nameTag;
25884
+ break;
25864
25885
#ifdef WOLFSSL_CUSTOM_OID
25865
25886
case ASN_CUSTOM_NAME:
25866
25887
XMEMCPY(name->encoded + idx, cname->custom.oid,
@@ -25931,6 +25952,10 @@ static int EncodeName(EncodedName* name, const char* nameStr,
25931
25952
oid = uidOid;
25932
25953
oidSz = sizeof(uidOid);
25933
25954
break;
25955
+ case ASN_FAVOURITE_DRINK:
25956
+ oid = fvrtDrk;
25957
+ oidSz = sizeof(fvrtDrk);
25958
+ break;
25934
25959
#ifdef WOLFSSL_CUSTOM_OID
25935
25960
case ASN_CUSTOM_NAME:
25936
25961
nameSz = cname->custom.valSz;
@@ -26118,6 +26143,12 @@ static int SetNameRdnItems(ASNSetData* dataASN, ASNItem* namesASN,
26118
26143
sizeof(uidOid), GetNameType(name, i),
26119
26144
(const byte*)GetOneCertName(name, i), nameLen[i]);
26120
26145
}
26146
+ else if (type == ASN_FAVOURITE_DRINK) {
26147
+ /* Copy favourite drink data into dynamic vars. */
26148
+ SetRdnItems(namesASN + idx, dataASN + idx, fvrtDrk,
26149
+ sizeof(fvrtDrk), GetNameType(name, i),
26150
+ (const byte*)GetOneCertName(name, i), nameLen[i]);
26151
+ }
26121
26152
else if (type == ASN_CUSTOM_NAME) {
26122
26153
#ifdef WOLFSSL_CUSTOM_OID
26123
26154
SetRdnItems(namesASN + idx, dataASN + idx, name->custom.oid,
0 commit comments