SharkSSL C/C++ Reference
TLS, cryptography, certificates, and PSA integration
SharkSslEx.h File Reference
#include "SharkSSL.h"
#include <time.h>

Go to the source code of this file.

Data Structures

struct  SubjectAltNameEnumerator
 SubjectAltName Iterator. More...
 
struct  SubjectAltName
 SubjectAltName. More...
 

Macros

#define SubjectAltName_getTag(o)   ((o)->tag)
 
#define SubjectAltName_getLen(o)   ((o)->len)
 
#define SubjectAltName_getPtr(o)   ((o)->ptr)
 
#define SubjectAltName_isValid(o)   (NULL != SubjectAltName_getPtr(o))
 
#define SubjectAltNameEnumerator_nextElement   SubjectAltNameEnumerator_getElement
 
#define SUBJECTALTNAME_OTHERNAME   0
 possible values for SubjectAltName_getTag see https://tools.ietf.org/html/rfc5280#section-4.2.1.6 More...
 
#define SUBJECTALTNAME_RFC822NAME   1
 
#define SUBJECTALTNAME_DNSNAME   2
 
#define SUBJECTALTNAME_X400ADDRESS   3
 
#define SUBJECTALTNAME_DIRECTORYNAME   4
 
#define SUBJECTALTNAME_EDIPARTYNAME   5
 
#define SUBJECTALTNAME_URI   6
 
#define SUBJECTALTNAME_IPADDRESS   7
 

Typedefs

typedef time_t BaTime
 
typedef struct SubjectAltNameEnumerator SubjectAltNameEnumerator
 SubjectAltName Iterator. More...
 
typedef struct SubjectAltName SubjectAltName
 SubjectAltName. More...
 

Enumerations

enum  SharkSslConTrust {
  SharkSslConTrust_NotSSL =10 , SharkSslConTrust_None , SharkSslConTrust_Cert , SharkSslConTrust_Cn ,
  SharkSslConTrust_CertCn , SharkSslConTrust_CertCnDate
}
 SharkSslCon_trusted return values More...
 

Functions

SHARKSSL_API void SubjectAltNameEnumerator_constructor (SubjectAltNameEnumerator *o, U8 *ptr, SharkSslSANLen len)
 
SHARKSSL_API void SubjectAltNameEnumerator_getElement (SubjectAltNameEnumerator *o, SubjectAltName *s)
 
SHARKSSL_API int sharkStrCaseCmp (const char *a, int aLen, const char *b, int bLen)
 Case insensitive string compare. More...
 
SHARKSSL_API int sharkSubjectSubjectAltCmp (const char *cn, U16 cnLen, U8 *subjAltPtr, SharkSslSANLen subjAltLen, const char *name, U16 nameLen)
 Compare a length-delimited ASCII reference name with the certificate. More...
 
SHARKSSL_API BaTime sharkParseCertTime (const U8 *utc, U8 len)
 Converts the expected certificate time string format YY[YY]MMDDHHMMSSZ to seconds since Jan 1, 1970. More...
 
SHARKSSL_API SharkSslConTrust SharkSslCon_trusted (SharkSslCon *o, const char *name, SharkSslCertInfo **cPtr)
 Return the peer's trust status and certificate. More...
 

Macro Definition Documentation

◆ SUBJECTALTNAME_DIRECTORYNAME

#define SUBJECTALTNAME_DIRECTORYNAME   4

◆ SUBJECTALTNAME_DNSNAME

#define SUBJECTALTNAME_DNSNAME   2

◆ SUBJECTALTNAME_EDIPARTYNAME

#define SUBJECTALTNAME_EDIPARTYNAME   5

◆ SubjectAltName_getLen

#define SubjectAltName_getLen (   o)    ((o)->len)

◆ SubjectAltName_getPtr

#define SubjectAltName_getPtr (   o)    ((o)->ptr)

◆ SubjectAltName_getTag

#define SubjectAltName_getTag (   o)    ((o)->tag)

◆ SUBJECTALTNAME_IPADDRESS

#define SUBJECTALTNAME_IPADDRESS   7

◆ SubjectAltName_isValid

#define SubjectAltName_isValid (   o)    (NULL != SubjectAltName_getPtr(o))

◆ SUBJECTALTNAME_OTHERNAME

#define SUBJECTALTNAME_OTHERNAME   0

possible values for SubjectAltName_getTag see https://tools.ietf.org/html/rfc5280#section-4.2.1.6

◆ SUBJECTALTNAME_RFC822NAME

#define SUBJECTALTNAME_RFC822NAME   1

◆ SUBJECTALTNAME_URI

#define SUBJECTALTNAME_URI   6

◆ SUBJECTALTNAME_X400ADDRESS

#define SUBJECTALTNAME_X400ADDRESS   3

◆ SubjectAltNameEnumerator_nextElement

#define SubjectAltNameEnumerator_nextElement   SubjectAltNameEnumerator_getElement

Typedef Documentation

◆ BaTime

typedef time_t BaTime

◆ SubjectAltName

◆ SubjectAltNameEnumerator

Function Documentation

◆ sharkParseCertTime()

SHARKSSL_API BaTime sharkParseCertTime ( const U8 *  utc,
U8  len 
)

Converts the expected certificate time string format YY[YY]MMDDHHMMSSZ to seconds since Jan 1, 1970.

◆ sharkStrCaseCmp()

SHARKSSL_API int sharkStrCaseCmp ( const char *  a,
int  aLen,
const char *  b,
int  bLen 
)

Case insensitive string compare.

◆ sharkSubjectSubjectAltCmp()

SHARKSSL_API int sharkSubjectSubjectAltCmp ( const char *  cn,
U16  cnLen,
U8 *  subjAltPtr,
SharkSslSANLen  subjAltLen,
const char *  name,
U16  nameLen 
)

Compare a length-delimited ASCII reference name with the certificate.

Canonical dotted-decimal IPv4 names match only iPAddress SANs. Ambiguous numeric spellings, non-ASCII names, embedded NULs, and IPv6 text fail closed. Convert internationalized names to ASCII A-labels before calling.

◆ SubjectAltNameEnumerator_constructor()

SHARKSSL_API void SubjectAltNameEnumerator_constructor ( SubjectAltNameEnumerator *  o,
U8 *  ptr,
SharkSslSANLen  len 
)

◆ SubjectAltNameEnumerator_getElement()

SHARKSSL_API void SubjectAltNameEnumerator_getElement ( SubjectAltNameEnumerator *  o,
SubjectAltName *  s 
)