ASN1C C/C++ Common Runtime  ASN1C v7.5.x
Classes | Macros | Typedefs | Enumerations | Functions
asn1type.h File Reference
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <setjmp.h>
#include <stdlib.h>
#include <time.h>
#include <wchar.h>
#include "rtxsrc/rtxExternDefs.h"
#include "rtxsrc/rtxSList.h"
#include "rtxsrc/rtxStack.h"
#include "rtxsrc/rtxUTF8.h"
#include "rtsrc/asn1tag.h"
#include "rtsrc/asn1ErrCodes.h"
#include "rtsrc/rtExternDefs.h"
#include <float.h>
#include "rtxsrc/rtxBitString.h"
#include "rtsrc/rtContext.h"
#include "rtxsrc/rtxCommonDefs.h"
#include "rtxsrc/rtxError.h"
#include "rtxsrc/rtxMemory.h"

Go to the source code of this file.

Classes

struct  ASN1OBJID
 
struct  ASN1OID64
 
struct  ASN1OctStr
 
struct  ASN1DynBitStr
 
struct  ASN1DynBitStr64
 
struct  ASN1BitStr32
 
struct  ASN1DateTime
 
struct  ASN1Duration
 
struct  ASN1IntervalDE
 
struct  ASN1IntervalSE
 
struct  ASN1IntervalSD
 
struct  ASN1Interval
 
struct  ASN1Time
 
struct  ASN1SeqOf
 
struct  ASN1SeqOfOctStr
 
struct  ASN1OpenType
 
struct  Asn1Object
 
struct  OSXSDAny
 
struct  Asn116BitCharString
 
struct  Asn132BitCharString
 
struct  Asn1CharArray
 
struct  Asn1CharSet
 
struct  Asn116BitCharSet
 
struct  Asn132BitCharSet
 
struct  ASN1BigInt
 
struct  ASN1CCB
 

Macros

#define XM_SEEK   0x01
 
#define XM_ADVANCE   0x02
 
#define XM_DYNAMIC   0x04
 
#define XM_SKIP   0x08
 
#define XM_OPTIONAL   0x10
 
#define ASN_K_MAXDEPTH   32
 
#define ASN_K_MAXENUM   100
 
#define ASN_K_MAXERRP   5
 
#define ASN_K_MAXERRSTK   8
 
#define ASN_K_ENCBUFSIZ   16*1024
 
#define ASN_K_MEMBUFSEG   1024
 
#define OSRTINDENTSPACES   3
 
#define ASN1_K_PLUS_INFINITY   0x40
 
#define ASN1_K_MINUS_INFINITY   0x41
 
#define ASN1_K_NOT_A_NUMBER   0x42
 
#define ASN1_K_MINUS_ZERO   0x43
 
#define REAL_BINARY   0x80
 
#define REAL_SIGN   0x40
 
#define REAL_EXPLEN_MASK   0x03
 
#define REAL_EXPLEN_1   0x00
 
#define REAL_EXPLEN_2   0x01
 
#define REAL_EXPLEN_3   0x02
 
#define REAL_EXPLEN_LONG   0x03
 
#define REAL_FACTOR_MASK   0x0c
 
#define REAL_BASE_MASK   0x30
 
#define REAL_BASE_2   0x00
 
#define REAL_BASE_8   0x10
 
#define REAL_BASE_16   0x20
 
#define REAL_ISO6093_MASK   0x3F
 
#define ASN1REALMAX   (OSREAL)DBL_MAX
 
#define ASN1REALMIN   (OSREAL)-DBL_MAX
 
#define ASN_K_MAXSUBIDS   128 /* maximum sub-id's in an object ID */
 
#define ASN1DynOctStr   OSDynOctStr
 
#define ASN1DynOctStr64   OSDynOctStr64
 
#define OSSETBIT(bitStr, bitIndex)   rtxSetBit (bitStr.data, bitStr.numbits, bitIndex)
 
#define OSSETBITP(pBitStr, bitIndex)   rtxSetBit ((pBitStr)->data, (pBitStr)->numbits, bitIndex)
 
#define OSCLEARBIT(bitStr, bitIndex)   rtxClearBit (bitStr.data, bitStr.numbits, bitIndex)
 
#define OSCLEARBITP(pBitStr, bitIndex)   rtxClearBit ((pBitStr)->data, (pBitStr)->numbits, bitIndex)
 
#define OSTESTBIT(bitStr, bitIndex)   rtxTestBit (bitStr.data, bitStr.numbits, bitIndex)
 
#define OSTESTBITP(pBitStr, bitIndex)   rtxTestBit ((pBitStr)->data, (pBitStr)->numbits, bitIndex)
 
#define ASN1TIMEFIELD_CENTURY   0x01
 
#define ASN1TIMEFIELD_YEAR   0x02
 
#define ASN1TIMEFIELD_MONTH   0x04
 
#define ASN1TIMEFIELD_DAY   0x08
 
#define ASN1TIMEFIELD_WEEK   0x10
 
#define ASN1TIMEFIELD_HOUR   0x20
 
#define ASN1TIMEFIELD_MIN   0x40
 
#define ASN1TIMEFIELD_SEC   0x80
 
#define ASN1TIMEFIELD_Z   0x0100
 
#define ASN1TIMEFIELD_DIFF   0x0200
 
#define ASN1TIMEFIELD_INTERVAL_SE   0x0400
 
#define ASN1TIMEFIELD_DURATION   0x0800
 
#define ASN1TIMEFIELD_INTERVAL_SD   0x1000
 
#define ASN1TIMEFIELD_INTERVAL_DE   0x2000
 
#define ASN1TIMEFIELD_RECUR_INF   0x4000
 
#define ASN1TIMEFIELD_POINT
 
#define ASN1_K_CCBMaskSize   32
 
#define ASN1_K_NumBitsPerMask   16
 
#define ASN1_K_MaxSetElements   (ASN1_K_CCBMaskSize*ASN1_K_NumBitsPerMask)
 
#define ALLOC_ASN1ARRAY(pctxt, pseqof, type)
 
#define ALLOC_ASN1ARRAY1(pctxt, pseqof, type)
 
#define ASN1NUMOCTS(nbits)   ((nbits>0)?(((nbits-1)/8)+1):0)
 

Typedefs

typedef void * ASN1ANY
 
typedef struct ASN1DateTime ASN1DateTime
 
typedef struct ASN1Duration ASN1Duration
 
typedef struct ASN1IntervalDE ASN1IntervalDE
 
typedef struct ASN1IntervalSE ASN1IntervalSE
 
typedef struct ASN1IntervalSD ASN1IntervalSD
 
typedef struct ASN1Interval ASN1Interval
 
typedef struct ASN1Time ASN1Time
 
typedef Asn1Object ASN1Object
 
typedef struct OSXSDAny OSXSDAny
 
typedef OSUNICHAR ASN116BITCHAR
 
typedef const char * ASN1GeneralizedTime
 
typedef const char * ASN1GeneralString
 
typedef const char * ASN1GraphicString
 
typedef const char * ASN1IA5String
 
typedef const char * ASN1ISO646String
 
typedef const char * ASN1NumericString
 
typedef const char * ASN1ObjectDescriptor
 
typedef const char * ASN1PrintableString
 
typedef const char * ASN1TeletexString
 
typedef const char * ASN1T61String
 
typedef const char * ASN1UTCTime
 
typedef const char * ASN1VideotexString
 
typedef const char * ASN1VisibleString
 
typedef const OSUTF8CHAR * ASN1UTF8String
 
typedef Asn116BitCharString ASN1BMPString
 
typedef Asn132BitCharString ASN1UniversalString
 
typedef struct ASN1BigInt ASN1BigInt
 
typedef int(* ASN1DumpCbFunc) (const char *text_p, void *cbArg_p)
 

Enumerations

enum  ASN1StrType { ASN1HEX, ASN1BIN, ASN1CHR }
 
enum  ASN1ActionType { ASN1ENCODE, ASN1DECODE }
 
enum  OSXSDAnyAlt { OSXSDAny_binary, OSXSDAny_xmlText }
 

Functions

void rtSetOID (ASN1OBJID *ptarget, ASN1OBJID *psource)
 
void rtAddOID (ASN1OBJID *ptarget, ASN1OBJID *psource)
 
OSBOOL rtOIDsEqual (const ASN1OBJID *pOID1, const ASN1OBJID *pOID2)
 
int rtOIDParseCompList (const char *str, OSSIZE strlen, ASN1OBJID *pvalue)
 
int rtOIDParseString (const char *oidstr, OSSIZE oidstrlen, ASN1OBJID *pvalue)
 
int rtRelOIDParseCompList (const char *str, OSSIZE strlen, ASN1OBJID *pvalue)
 
int rtRelOIDParseString (const char *oidstr, OSSIZE oidstrlen, ASN1OBJID *pvalue)
 
int rtOIDParseDottedNumberString (const char *oidstr, OSSIZE oidstrlen, ASN1OBJID *pvalue)
 
OSBOOL rtOIDIsValid (const ASN1OBJID *pvalue)
 
int rtMakeGeneralizedTime (OSCTXT *pctxt, const OSNumDateTime *dateTime, char **outdata, size_t outdataSize)
 
int rtMakeTime (OSCTXT *pctxt, const ASN1Time *timeVal, char **outdata, size_t outdataSize)
 
int rtMakeUTCTime (OSCTXT *pctxt, const OSNumDateTime *dateTime, char **outdata, size_t outdataSize)
 
int rtParseGeneralizedTime (OSCTXT *pctxt, const char *value, OSNumDateTime *dateTime)
 
int rtParseGeneralizedTime2 (OSCTXT *pctxt, const char *value, OSNumDateTime *dateTime, OSBOOL logCanon)
 
int rtParseUTCTime (OSCTXT *pctxt, const char *value, OSNumDateTime *dateTime)
 
int rtParseUTCTime2 (OSCTXT *pctxt, const char *value, OSNumDateTime *dateTime, OSBOOL logCanon)
 
int rtParseTime (OSCTXT *pctxt, const char *value, ASN1Time *timeVal, OSBOOL logCanon)
 
void normalizeTimeZone (OSNumDateTime *pvalue)
 
int rtValidateStr (ASN1TAG tag, const char *pdata)
 
int rtValidateChars (ASN1TAG tag, const char *pdata, size_t nchars)
 
const char * rtBMPToCString (ASN1BMPString *pBMPString, char *cstring, OSSIZE cstrsize)
 
const char * rtBMPToNewCString (ASN1BMPString *pBMPString)
 
const char * rtBMPToNewCStringEx (OSCTXT *pctxt, ASN1BMPString *pBMPString)
 
ASN1BMPStringrtCToBMPString (OSCTXT *pctxt, const char *cstring, ASN1BMPString *pBMPString, Asn116BitCharSet *pCharSet)
 
OSBOOL rtIsIn16BitCharSet (OSUNICHAR ch, Asn116BitCharSet *pCharSet)
 
const char * rtUCSToCString (ASN1UniversalString *pUCSString, char *cstring, OSSIZE cstrsize)
 
const char * rtUCSToNewCString (ASN1UniversalString *pUCSString)
 
const char * rtUCSToNewCStringEx (OSCTXT *pctxt, ASN1UniversalString *pUCSString)
 
ASN1UniversalStringrtCToUCSString (OSCTXT *pctxt, const char *cstring, ASN1UniversalString *pUCSString, Asn132BitCharSet *pCharSet)
 
OSBOOL rtIsIn32BitCharSet (OS32BITCHAR ch, Asn132BitCharSet *pCharSet)
 
wchar_t * rtUCSToWCSString (ASN1UniversalString *pUCSString, wchar_t *wcstring, OSUINT32 wcstrsize)
 
ASN1UniversalStringrtWCSToUCSString (OSCTXT *pctxt, wchar_t *wcstring, ASN1UniversalString *pUCSString, Asn132BitCharSet *pCharSet)
 
int rtUnivStrToUTF8 (OSCTXT *pctxt, const ASN1UniversalString *pUnivStr, OSOCTET *outbuf, size_t outbufsiz)
 
int rtUTF8StrToASN1DynBitStr (OSCTXT *pctxt, const OSUTF8CHAR *utf8str, ASN1DynBitStr *pvalue)
 
int rtUTF8StrnToASN1DynBitStr (OSCTXT *pctxt, const OSUTF8CHAR *utf8str, size_t nbytes, ASN1DynBitStr *pvalue)
 

Detailed Description

Common ASN.1 runtime constants, data structure definitions, and run-time functions to support the BER/DER/PER/XER as defined in the ITU-T standards.