1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
/*
* XML Security Library
*
* THIS IS A PRIVATE XMLSEC HEADER FILE
* DON'T USE IT IN YOUR APPLICATION
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
* Copyright (C) 2010 Aleksey Sanin <aleksey@aleksey.com>
*/
#ifndef __XMLSEC_GNUTLS_X509UTILS_H__
#define __XMLSEC_GNUTLS_X509UTILS_H__
#ifndef XMLSEC_PRIVATE
#error "gnutls/x509utils.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
#endif /* XMLSEC_PRIVATE */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef XMLSEC_NO_X509
/**************************************************************************
*
* X509 certs list
*
*****************************************************************************/
#define xmlSecGnuTLSX509CrtListId \
xmlSecGnuTLSX509CrtListGetKlass()
xmlSecPtrListId xmlSecGnuTLSX509CrtListGetKlass (void);
/**************************************************************************
*
* X509 crls list
*
*****************************************************************************/
#define xmlSecGnuTLSX509CrlListId \
xmlSecGnuTLSX509CrlListGetKlass()
xmlSecPtrListId xmlSecGnuTLSX509CrlListGetKlass (void);
/*************************************************************************
*
* x509 certs utils/helpers
*
************************************************************************/
gnutls_x509_crt_t xmlSecGnuTLSX509CertDup (gnutls_x509_crt_t src);
xmlChar * xmlSecGnuTLSX509CertGetSubjectDN (gnutls_x509_crt_t cert);
xmlChar * xmlSecGnuTLSX509CertGetIssuerDN (gnutls_x509_crt_t cert);
xmlChar * xmlSecGnuTLSX509CertGetIssuerSerial (gnutls_x509_crt_t cert);
xmlChar * xmlSecGnuTLSX509CertGetSKI (gnutls_x509_crt_t cert);
gnutls_x509_crt_t xmlSecGnuTLSX509CertRead (const xmlSecByte* buf,
xmlSecSize size,
xmlSecKeyDataFormat format);
gnutls_x509_crt_t xmlSecGnuTLSX509CertBase64DerRead (xmlChar* buf);
xmlChar* xmlSecGnuTLSX509CertBase64DerWrite (gnutls_x509_crt_t cert,
int base64LineWrap);
void xmlSecGnuTLSX509CertDebugDump (gnutls_x509_crt_t cert,
FILE* output);
void xmlSecGnuTLSX509CertDebugXmlDump (gnutls_x509_crt_t cert,
FILE* output);
/*************************************************************************
*
* x509 crls utils/helpers
*
************************************************************************/
gnutls_x509_crl_t xmlSecGnuTLSX509CrlDup (gnutls_x509_crl_t src);
xmlChar * xmlSecGnuTLSX509CrLGetIssuerDN (gnutls_x509_crl_t crl);
gnutls_x509_crl_t xmlSecGnuTLSX509CrlRead (const xmlSecByte* buf,
xmlSecSize size,
xmlSecKeyDataFormat format);
gnutls_x509_crl_t xmlSecGnuTLSX509CrlBase64DerRead (xmlChar* buf);
xmlChar* xmlSecGnuTLSX509CrlBase64DerWrite (gnutls_x509_crl_t crl,
int base64LineWrap);
void xmlSecGnuTLSX509CrlDebugDump (gnutls_x509_crl_t crl,
FILE* output);
void xmlSecGnuTLSX509CrlDebugXmlDump (gnutls_x509_crl_t crl,
FILE* output);
/*************************************************************************
*
* Misc. utils/helpers
*
************************************************************************/
xmlChar* xmlSecGnuTLSASN1IntegerWrite (const unsigned char * data,
size_t len);
/*************************************************************************
*
* pkcs12 utils/helpers
*
************************************************************************/
int xmlSecGnuTLSPkcs12LoadMemory (const xmlSecByte* data,
xmlSecSize dataSize,
const char *pwd,
gnutls_x509_privkey_t * priv_key,
gnutls_x509_crt_t * key_cert,
xmlSecPtrListPtr certsList);
/*************************************************************************
*
* keydata utils/helpers
*
************************************************************************/
xmlSecKeyDataPtr xmlSecGnuTLSCreateKeyDataAndAdoptPrivKey(gnutls_x509_privkey_t priv_key);
/*************************************************************************
*
* LDAP DN parser
*
************************************************************************/
typedef struct _xmlSecGnuTLSDnAttr {
xmlChar * key;
xmlChar * value;
} xmlSecGnuTLSDnAttr;
void xmlSecGnuTLSDnAttrsInitialize (xmlSecGnuTLSDnAttr * attrs,
xmlSecSize attrsSize);
void xmlSecGnuTLSDnAttrsDeinitialize (xmlSecGnuTLSDnAttr * attrs,
xmlSecSize attrsSize);
const xmlSecGnuTLSDnAttr * xmlSecGnuTLSDnAttrrsFind (const xmlSecGnuTLSDnAttr * attrs,
xmlSecSize attrsSize,
const xmlChar * key);
int xmlSecGnuTLSDnAttrsEqual (const xmlSecGnuTLSDnAttr * ll,
xmlSecSize llSize,
const xmlSecGnuTLSDnAttr * rr,
xmlSecSize rrSize);
int xmlSecGnuTLSDnAttrsParse (const xmlChar * dn,
xmlSecGnuTLSDnAttr * attrs,
xmlSecSize attrsSize);
#endif /* XMLSEC_NO_X509 */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ! __XMLSEC_GNUTLS_X509UTILS_H__ */
|