Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / btls / btls-x509-name.h
1 //
2 //  btls-x509-name.h
3 //  MonoBtls
4 //
5 //  Created by Martin Baulig on 3/5/16.
6 //  Copyright © 2016 Xamarin. All rights reserved.
7 //
8
9 #ifndef __btls__btls_x509_name__
10 #define __btls__btls_x509_name__
11
12 #include <stdio.h>
13 #include <btls-ssl.h>
14
15 typedef enum {
16         MONO_BTLS_X509_NAME_ENTRY_TYPE_UNKNOWN = 0,
17         MONO_BTLS_X509_NAME_ENTRY_TYPE_COUNTRY_NAME,
18         MONO_BTLS_X509_NAME_ENTRY_TYPE_ORGANIZATION_NAME,
19         MONO_BTLS_X509_NAME_ENTRY_TYPE_ORGANIZATIONAL_UNIT_NAME,
20         MONO_BTLS_X509_NAME_ENTRY_TYPE_COMMON_NAME,
21         MONO_BTLS_X509_NAME_ENTRY_TYPE_LOCALITY_NAME,
22         MONO_BTLS_X509_NAME_ENTRY_TYPE_STATE_OR_PROVINCE_NAME,
23         MONO_BTLS_X509_NAME_ENTRY_TYPE_STREET_ADDRESS,
24         MONO_BTLS_X509_NAME_ENTRY_TYPE_SERIAL_NUMBER,
25         MONO_BTLS_X509_NAME_ENTRY_TYPE_DOMAIN_COMPONENT,
26         MONO_BTLS_X509_NAME_ENTRY_TYPE_USER_ID,
27         MONO_BTLS_X509_NAME_ENTRY_TYPE_EMAIL,
28         MONO_BTLS_X509_NAME_ENTRY_TYPE_DN_QUALIFIER,
29         MONO_BTLS_X509_NAME_ENTRY_TYPE_TITLE,
30         MONO_BTLS_X509_NAME_ENTRY_TYPE_SURNAME,
31         MONO_BTLS_X509_NAME_ENTRY_TYPE_GIVEN_NAME,
32         MONO_BTLS_X509_NAME_ENTRY_TYPE_INITIAL
33 } MonoBtlsX509NameEntryType;
34
35 MonoBtlsX509Name *
36 mono_btls_x509_name_from_name (X509_NAME *name);
37
38 MonoBtlsX509Name *
39 mono_btls_x509_name_copy (X509_NAME *xn);
40
41 void
42 mono_btls_x509_name_free (MonoBtlsX509Name *name);
43
44 X509_NAME *
45 mono_btls_x509_name_peek_name (MonoBtlsX509Name *name);
46
47 MonoBtlsX509Name *
48 mono_btls_x509_name_from_data (const void *data, int len, int use_canon_enc);
49
50 int
51 mono_btls_x509_name_print_bio (MonoBtlsX509Name *name, BIO *bio);
52
53 int
54 mono_btls_x509_name_print_string (MonoBtlsX509Name *name, char *buffer, int size);
55
56 int
57 mono_btls_x509_name_get_raw_data (MonoBtlsX509Name *name, void **buffer, int use_canon_enc);
58
59 int64_t
60 mono_btls_x509_name_hash (MonoBtlsX509Name *name);
61
62 int64_t
63 mono_btls_x509_name_hash_old (MonoBtlsX509Name *name);
64
65 int
66 mono_btls_x509_name_get_entry_count (MonoBtlsX509Name *name);
67
68 MonoBtlsX509NameEntryType
69 mono_btls_x509_name_get_entry_type (MonoBtlsX509Name *name, int index);
70
71 int
72 mono_btls_x509_name_get_entry_oid (MonoBtlsX509Name *name, int index, char *buffer, int size);
73
74 int
75 mono_btls_x509_name_get_entry_oid_data (MonoBtlsX509Name *name, int index, const void **data);
76
77 int
78 mono_btls_x509_name_get_entry_value (MonoBtlsX509Name *name, int index, int *tag, unsigned char **str);
79
80 #endif /* __btls__btls_x509_name__ */