x509_int

x509_int

Functions

Types and Values

Description

Functions

MODIFIED()

#define MODIFIED(crt) crt->modified=1

map_errs_to_zero()

#define map_errs_to_zero(x) ((x)<0?0:(x))

gnutls_x509_crt_is_issuer ()

int
gnutls_x509_crt_is_issuer (gnutls_x509_crt_t cert,
                           gnutls_x509_crt_t issuer);

gnutls_x509_crt_verify_data3 ()

int
gnutls_x509_crt_verify_data3 (gnutls_x509_crt_t crt,
                              gnutls_sign_algorithm_t algo,
                              gnutls_typed_vdata_st *vdata,
                              unsigned int vdata_size,
                              const gnutls_datum_t *data,
                              const gnutls_datum_t *signature,
                              unsigned int flags);

Types and Values

MAX_CRQ_EXTENSIONS_SIZE

#define MAX_CRQ_EXTENSIONS_SIZE 8*1024

MAX_OID_SIZE

#define MAX_OID_SIZE 128

MAX_KEY_ID_SIZE

#define MAX_KEY_ID_SIZE 128

MAX_SALT_SIZE

#define MAX_SALT_SIZE 256

MAX_NAME_SIZE

#define MAX_NAME_SIZE (3*ASN1_MAX_NAME_SIZE)

HASH_OID_SHA1

#define HASH_OID_SHA1 "1.3.14.3.2.26"

HASH_OID_MD5

#define HASH_OID_MD5 "1.2.840.113549.2.5"

HASH_OID_MD2

#define HASH_OID_MD2 "1.2.840.113549.2.2"

HASH_OID_RMD160

#define HASH_OID_RMD160 "1.3.36.3.2.1"

HASH_OID_SHA224

#define HASH_OID_SHA224 "2.16.840.1.101.3.4.2.4"

HASH_OID_SHA256

#define HASH_OID_SHA256 "2.16.840.1.101.3.4.2.1"

HASH_OID_SHA384

#define HASH_OID_SHA384 "2.16.840.1.101.3.4.2.2"

HASH_OID_SHA512

#define HASH_OID_SHA512 "2.16.840.1.101.3.4.2.3"

HASH_OID_SHA3_224

#define HASH_OID_SHA3_224 "2.16.840.1.101.3.4.2.7"

HASH_OID_SHA3_256

#define HASH_OID_SHA3_256 "2.16.840.1.101.3.4.2.8"

HASH_OID_SHA3_384

#define HASH_OID_SHA3_384 "2.16.840.1.101.3.4.2.9"

HASH_OID_SHA3_512

#define HASH_OID_SHA3_512 "2.16.840.1.101.3.4.2.10"

HASH_OID_SHAKE_128

#define HASH_OID_SHAKE_128 "2.16.840.1.101.3.4.2.11"

HASH_OID_SHAKE_256

#define HASH_OID_SHAKE_256 "2.16.840.1.101.3.4.2.12"

HASH_OID_GOST_R_3411_94

#define HASH_OID_GOST_R_3411_94 "1.2.643.2.2.9"

HASH_OID_STREEBOG_256

#define HASH_OID_STREEBOG_256 "1.2.643.7.1.1.2.2"

HASH_OID_STREEBOG_512

#define HASH_OID_STREEBOG_512 "1.2.643.7.1.1.2.3"

HASH_OID_GOST_R_3411_94_CRYPTOPRO_PARAMS

#define HASH_OID_GOST_R_3411_94_CRYPTOPRO_PARAMS "1.2.643.2.2.30.1"

OID_ATTR_PROV_SEED

#define OID_ATTR_PROV_SEED "1.3.6.1.4.1.2312.18.8.1"

struct gnutls_x509_crl_iter

struct gnutls_x509_crl_iter {
	/* This is used to optimize reads by gnutls_x509_crl_iter_crt_serial() */
	asn1_node rcache;
	unsigned rcache_idx;
};

gnutls_x509_crl_int

typedef struct {
	asn1_node crl;

	unsigned expanded;
	/* This is used to optimize reads by gnutls_x509_crl_get_crt_serial2() */
	asn1_node rcache;
	unsigned rcache_idx;
	int use_extensions;

	gnutls_datum_t der;
	gnutls_datum_t raw_issuer_dn;
} gnutls_x509_crl_int;

gnutls_x509_dn_st

typedef struct {
	asn1_node asn;
} gnutls_x509_dn_st;

gnutls_x509_crt_int

typedef struct {
	asn1_node cert;
	int use_extensions;
	unsigned expanded; /* a certificate has been expanded */
	unsigned modified; /* the cached values below may no longer be valid */
	unsigned flags;

	struct pin_info_st pin;

	/* These two cached values allow fast calls to
	 * get_raw_*_dn(). */
	gnutls_datum_t raw_dn;
	gnutls_datum_t raw_issuer_dn;
	gnutls_datum_t raw_spki;

	gnutls_datum_t der;

	/* this cached value allows fast access to alt names */
	gnutls_subject_alt_names_t san;
	gnutls_subject_alt_names_t ian;

	/* backwards compatibility for gnutls_x509_crt_get_subject()
	 * and gnutls_x509_crt_get_issuer() */
	gnutls_x509_dn_st dn;
	gnutls_x509_dn_st idn;
} gnutls_x509_crt_int;

gnutls_x509_crq_int

typedef struct {
	asn1_node crq;
} gnutls_x509_crq_int;

gnutls_pkcs7_attrs_st

typedef struct {
	char *oid;
	gnutls_datum_t data;
	struct gnutls_pkcs7_attrs_st *next;
} gnutls_pkcs7_attrs_st;

gnutls_pkcs7_int

typedef struct {
	asn1_node pkcs7;

	char encap_data_oid[MAX_OID_SIZE];

	gnutls_datum_t der_signed_data;
	asn1_node signed_data;
	unsigned expanded;
} gnutls_pkcs7_int;

struct pbkdf2_params

struct pbkdf2_params {
	uint8_t salt[MAX_SALT_SIZE];
	int salt_size;
	unsigned iter_count;
	unsigned key_size;
	gnutls_mac_algorithm_t mac;
};

gnutls_x509_privkey_int

typedef struct {
	/* the size of params depends on the public
	 * key algorithm
	 */
	gnutls_pk_params_st params;

	unsigned expanded;
	unsigned flags;

	asn1_node key;
	struct pin_info_st pin;
} gnutls_x509_privkey_int;

OID_X520_COUNTRY_NAME

#define OID_X520_COUNTRY_NAME		"2.5.4.6"

OID_X520_ORGANIZATION_NAME

#define OID_X520_ORGANIZATION_NAME "2.5.4.10"

OID_X520_ORGANIZATIONAL_UNIT_NAME

#define OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"

OID_X520_COMMON_NAME

#define OID_X520_COMMON_NAME		"2.5.4.3"

OID_X520_LOCALITY_NAME

#define OID_X520_LOCALITY_NAME		"2.5.4.7"

OID_X520_STATE_OR_PROVINCE_NAME

#define OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"

OID_LDAP_DC

#define OID_LDAP_DC			"0.9.2342.19200300.100.1.25"

OID_LDAP_UID

#define OID_LDAP_UID			"0.9.2342.19200300.100.1.1"

OID_PKCS9_EMAIL

#define OID_PKCS9_EMAIL			"1.2.840.113549.1.9.1"

gnutls_pkcs12_int

typedef struct {
	asn1_node pkcs12;
	unsigned expanded;
} gnutls_pkcs12_int;

MAX_BAG_ELEMENTS

#define MAX_BAG_ELEMENTS 32

struct bag_element

struct bag_element {
	gnutls_datum_t data;
	gnutls_pkcs12_bag_type_t type;
	gnutls_datum_t local_key_id;
	char *friendly_name;
};

gnutls_pkcs12_bag_int

typedef struct {
	struct bag_element element[MAX_BAG_ELEMENTS];
	unsigned bag_elements;
} gnutls_pkcs12_bag_int;

BAG_PKCS8_KEY

#define BAG_PKCS8_KEY "1.2.840.113549.1.12.10.1.1"

BAG_PKCS8_ENCRYPTED_KEY

#define BAG_PKCS8_ENCRYPTED_KEY "1.2.840.113549.1.12.10.1.2"

BAG_CERTIFICATE

#define BAG_CERTIFICATE "1.2.840.113549.1.12.10.1.3"

BAG_CRL

#define BAG_CRL "1.2.840.113549.1.12.10.1.4"

BAG_SECRET

#define BAG_SECRET "1.2.840.113549.1.12.10.1.5"

FRIENDLY_NAME_OID

#define FRIENDLY_NAME_OID "1.2.840.113549.1.9.20"

KEY_ID_OID

#define KEY_ID_OID "1.2.840.113549.1.9.21"

gnutls_name_constraints_st

typedef struct {
	struct name_constraints_node_st * permitted;
	struct name_constraints_node_st * excluded;
} gnutls_name_constraints_st;

name_constraints_node_st

typedef struct {
	unsigned type;
	gnutls_datum_t name;
	struct name_constraints_node_st *next;
} name_constraints_node_st;

struct gnutls_x509_tlsfeatures_st

struct gnutls_x509_tlsfeatures_st {
	uint16_t feature[MAX_EXT_TYPES];
	unsigned int size;
};