forked from wolfSSL/wolfssl
Merge pull request #4305 from TakayukiMatsuo/i2t
Add support for wolfSSL_i2t_ASN1_OBJECT
This commit is contained in:
24
src/ssl.c
24
src/ssl.c
@ -27667,17 +27667,23 @@ WOLFSSL_API WOLFSSL_EVP_PKEY *wolfSSL_get_privatekey(const WOLFSSL *ssl)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NO_WOLFSSL_STUB
|
/**
|
||||||
/*** TBD ***/
|
* Get a textual representation of given WOLFSSL_ASN1_OBJECT then write it to
|
||||||
WOLFSSL_API int i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a)
|
* buf at most buf_len bytes.
|
||||||
|
*
|
||||||
|
* params
|
||||||
|
* - buf: buffer where the textual representation is to be written to
|
||||||
|
* - buf_len: buffer size in bytes
|
||||||
|
* - a: WOLFSSL_ASN1_OBJECT
|
||||||
|
*
|
||||||
|
* return the string length written on success, WOLFSSL_FAILURE on failure.
|
||||||
|
*/
|
||||||
|
WOLFSSL_API int wolfSSL_i2t_ASN1_OBJECT(char *buf, int buf_len,
|
||||||
|
WOLFSSL_ASN1_OBJECT *a)
|
||||||
{
|
{
|
||||||
(void)buf;
|
WOLFSSL_ENTER("wolfSSL_i2t_ASN1_OBJECT");
|
||||||
(void)buf_len;
|
return wolfSSL_OBJ_obj2txt(buf, buf_len, a, 0);
|
||||||
(void)a;
|
|
||||||
WOLFSSL_STUB("i2t_ASN1_OBJECT");
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
WOLFSSL_ASN1_OBJECT *wolfSSL_d2i_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT **a,
|
WOLFSSL_ASN1_OBJECT *wolfSSL_d2i_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT **a,
|
||||||
const unsigned char **der,
|
const unsigned char **der,
|
||||||
|
28
tests/api.c
28
tests/api.c
@ -34876,6 +34876,33 @@ static void test_wolfSSL_OBJ_txt2obj(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_wolfSSL_i2t_ASN1_OBJECT(void)
|
||||||
|
{
|
||||||
|
#if defined(OPENSSL_EXTRA) && \
|
||||||
|
defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_CERT_GEN)
|
||||||
|
|
||||||
|
char buf[50] = {0};
|
||||||
|
ASN1_OBJECT* obj;
|
||||||
|
const char* oid = "2.5.29.19";
|
||||||
|
const char* ln = "X509v3 Basic Constraints";
|
||||||
|
|
||||||
|
printf(testingFmt, "test_wolfSSL_i2t_ASN1_OBJECT()");
|
||||||
|
|
||||||
|
obj = NULL;
|
||||||
|
AssertIntEQ(i2t_ASN1_OBJECT(NULL, sizeof(buf), obj), WOLFSSL_FAILURE);
|
||||||
|
AssertIntEQ(i2t_ASN1_OBJECT(buf, sizeof(buf), NULL), WOLFSSL_FAILURE);
|
||||||
|
AssertIntEQ(i2t_ASN1_OBJECT(buf, 0, NULL), WOLFSSL_FAILURE);
|
||||||
|
|
||||||
|
AssertNotNull(obj = OBJ_txt2obj(oid, 0));
|
||||||
|
XMEMSET(buf, 0, sizeof(buf));
|
||||||
|
AssertIntEQ(i2t_ASN1_OBJECT(buf, sizeof(buf), obj), XSTRLEN(ln));
|
||||||
|
AssertIntEQ(XSTRNCMP(buf, ln, XSTRLEN(ln)), 0);
|
||||||
|
ASN1_OBJECT_free(obj);
|
||||||
|
|
||||||
|
printf(resultFmt, passed);
|
||||||
|
#endif /* OPENSSL_EXTRA && WOLFSSL_CERT_EXT && WOLFSSL_CERT_GEN */
|
||||||
|
}
|
||||||
|
|
||||||
static void test_wolfSSL_X509_NAME_ENTRY(void)
|
static void test_wolfSSL_X509_NAME_ENTRY(void)
|
||||||
{
|
{
|
||||||
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
|
||||||
@ -47773,6 +47800,7 @@ void ApiTest(void)
|
|||||||
test_wolfSSL_OBJ_cmp();
|
test_wolfSSL_OBJ_cmp();
|
||||||
test_wolfSSL_OBJ_txt2nid();
|
test_wolfSSL_OBJ_txt2nid();
|
||||||
test_wolfSSL_OBJ_txt2obj();
|
test_wolfSSL_OBJ_txt2obj();
|
||||||
|
test_wolfSSL_i2t_ASN1_OBJECT();
|
||||||
test_wolfSSL_X509_NAME_ENTRY();
|
test_wolfSSL_X509_NAME_ENTRY();
|
||||||
test_wolfSSL_X509_set_name();
|
test_wolfSSL_X509_set_name();
|
||||||
test_wolfSSL_X509_set_notAfter();
|
test_wolfSSL_X509_set_notAfter();
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
#define OBJ_create wolfSSL_OBJ_create
|
#define OBJ_create wolfSSL_OBJ_create
|
||||||
#define ASN1_OBJECT_free wolfSSL_ASN1_OBJECT_free
|
#define ASN1_OBJECT_free wolfSSL_ASN1_OBJECT_free
|
||||||
#define OBJ_NAME_do_all wolfSSL_OBJ_NAME_do_all
|
#define OBJ_NAME_do_all wolfSSL_OBJ_NAME_do_all
|
||||||
|
#define i2t_ASN1_OBJECT wolfSSL_i2t_ASN1_OBJECT
|
||||||
|
|
||||||
/* not required for wolfSSL */
|
/* not required for wolfSSL */
|
||||||
#define OPENSSL_load_builtin_modules()
|
#define OPENSSL_load_builtin_modules()
|
||||||
|
@ -4526,7 +4526,7 @@ WOLFSSL_API WOLFSSL_X509_PUBKEY *wolfSSL_X509_get_X509_PUBKEY(const WOLFSSL_X509
|
|||||||
WOLFSSL_API int wolfSSL_X509_PUBKEY_get0_param(WOLFSSL_ASN1_OBJECT **ppkalg, const unsigned char **pk, int *ppklen, WOLFSSL_X509_ALGOR **pa, WOLFSSL_X509_PUBKEY *pub);
|
WOLFSSL_API int wolfSSL_X509_PUBKEY_get0_param(WOLFSSL_ASN1_OBJECT **ppkalg, const unsigned char **pk, int *ppklen, WOLFSSL_X509_ALGOR **pa, WOLFSSL_X509_PUBKEY *pub);
|
||||||
WOLFSSL_API WOLFSSL_EVP_PKEY* wolfSSL_X509_PUBKEY_get(WOLFSSL_X509_PUBKEY* key);
|
WOLFSSL_API WOLFSSL_EVP_PKEY* wolfSSL_X509_PUBKEY_get(WOLFSSL_X509_PUBKEY* key);
|
||||||
WOLFSSL_API int wolfSSL_X509_PUBKEY_set(WOLFSSL_X509_PUBKEY **x, WOLFSSL_EVP_PKEY *key);
|
WOLFSSL_API int wolfSSL_X509_PUBKEY_set(WOLFSSL_X509_PUBKEY **x, WOLFSSL_EVP_PKEY *key);
|
||||||
WOLFSSL_API int i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a);
|
WOLFSSL_API int wolfSSL_i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a);
|
||||||
WOLFSSL_API WOLFSSL_ASN1_OBJECT *wolfSSL_d2i_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT **a,
|
WOLFSSL_API WOLFSSL_ASN1_OBJECT *wolfSSL_d2i_ASN1_OBJECT(WOLFSSL_ASN1_OBJECT **a,
|
||||||
const unsigned char **der,
|
const unsigned char **der,
|
||||||
long length);
|
long length);
|
||||||
|
Reference in New Issue
Block a user