mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-01-30 23:39:16 +01:00
X509_NAME_ENTRY_get_object
This commit is contained in:
49
src/ssl.c
49
src/ssl.c
@@ -29749,12 +29749,19 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
* returns a pointer to a new WOLFSSL_ASN1_OBJECT struct on success and NULL
|
||||
* on fail
|
||||
*/
|
||||
|
||||
WOLFSSL_ASN1_OBJECT* wolfSSL_OBJ_nid2obj(int id)
|
||||
{
|
||||
return wolfSSL_OBJ_nid2obj_ex(id, NULL);
|
||||
}
|
||||
|
||||
WOLFSSL_LOCAL WOLFSSL_ASN1_OBJECT* wolfSSL_OBJ_nid2obj_ex(int id,
|
||||
WOLFSSL_ASN1_OBJECT* arg_obj)
|
||||
{
|
||||
word32 oidSz = 0;
|
||||
const byte* oid;
|
||||
word32 type = 0;
|
||||
WOLFSSL_ASN1_OBJECT* obj;
|
||||
WOLFSSL_ASN1_OBJECT* obj = arg_obj;
|
||||
byte objBuf[MAX_OID_SZ + MAX_LENGTH_SZ + 1]; /* +1 for object tag */
|
||||
word32 objSz = 0;
|
||||
const char* sName;
|
||||
@@ -30169,10 +30176,12 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
oid = OidFromId(id, type, &oidSz);
|
||||
|
||||
/* set object ID to buffer */
|
||||
obj = wolfSSL_ASN1_OBJECT_new();
|
||||
if (obj == NULL) {
|
||||
WOLFSSL_MSG("Issue creating WOLFSSL_ASN1_OBJECT struct");
|
||||
return NULL;
|
||||
if (obj == NULL){
|
||||
obj = wolfSSL_ASN1_OBJECT_new();
|
||||
if (obj == NULL) {
|
||||
WOLFSSL_MSG("Issue creating WOLFSSL_ASN1_OBJECT struct");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
obj->type = id;
|
||||
obj->grp = type;
|
||||
@@ -30185,12 +30194,15 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
objSz += oidSz;
|
||||
obj->objSz = objSz;
|
||||
|
||||
obj->obj = (byte*)XMALLOC(obj->objSz, NULL, DYNAMIC_TYPE_ASN1);
|
||||
if (obj->obj == NULL) {
|
||||
wolfSSL_ASN1_OBJECT_free(obj);
|
||||
return NULL;
|
||||
}
|
||||
XMEMCPY(obj->obj, objBuf, obj->objSz);
|
||||
if(arg_obj == NULL) { /* Dynamic NAME_ENTRY */
|
||||
obj->obj = (byte*)XMALLOC(obj->objSz, NULL, DYNAMIC_TYPE_ASN1);
|
||||
if ((obj->obj == NULL) && arg_obj == NULL) {
|
||||
wolfSSL_ASN1_OBJECT_free(obj);
|
||||
return NULL;
|
||||
}
|
||||
XMEMCPY(obj->obj, objBuf, obj->objSz);
|
||||
} else /* static NAME_ENTR is for just type and grp */
|
||||
obj->obj = NULL;
|
||||
|
||||
(void)type;
|
||||
|
||||
@@ -30889,15 +30901,13 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
WOLFSSL_ASN1_OBJECT * wolfSSL_X509_NAME_ENTRY_get_object(WOLFSSL_X509_NAME_ENTRY *ne) {
|
||||
(void)ne;
|
||||
WOLFSSL_ENTER("wolfSSL_X509_NAME_ENTRY_get_object");
|
||||
WOLFSSL_STUB("X509_NAME_ENTRY_get_object");
|
||||
|
||||
return NULL;
|
||||
if (ne == NULL) return NULL;
|
||||
wolfSSL_OBJ_nid2obj_ex(ne->nid, &ne->object);
|
||||
return &ne->object;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
WOLFSSL_X509_NAME_ENTRY *wolfSSL_X509_NAME_get_entry(
|
||||
WOLFSSL_X509_NAME *name, int loc)
|
||||
@@ -30932,7 +30942,6 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
}
|
||||
name->cnEntry.data.type = CTC_UTF8;
|
||||
name->cnEntry.set = 1;
|
||||
return &(name->cnEntry);
|
||||
|
||||
/* common name index case */
|
||||
} else if (loc == name->fullName.cnIdx) {
|
||||
@@ -30942,9 +30951,11 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
name->cnEntry.data.type = CTC_UTF8;
|
||||
name->cnEntry.nid = ASN_COMMON_NAME;
|
||||
name->cnEntry.set = 1;
|
||||
return &(name->cnEntry);
|
||||
}
|
||||
|
||||
wolfSSL_OBJ_nid2obj_ex(name->cnEntry.nid, &name->cnEntry.object);
|
||||
return &name->cnEntry;
|
||||
|
||||
/* additionall cases to check for go here */
|
||||
|
||||
WOLFSSL_MSG("Entry not found or implemented");
|
||||
|
||||
Reference in New Issue
Block a user