Update Bockbuild
[mono-project.git] / mono / btls / btls-x509-revoked.c
blobbf9af79de46920f7964e2b2032bb30f39177a2b7
1 //
2 // btls-x509-revoked.c
3 // MonoBtls
4 //
5 // Created by Martin Baulig on 3/23/16.
6 // Copyright © 2016 Xamarin. All rights reserved.
7 //
9 #include <btls-x509-revoked.h>
11 struct MonoBtlsX509Revoked {
12 MonoBtlsX509Crl *owner;
13 X509_REVOKED *revoked;
16 MONO_API MonoBtlsX509Revoked *
17 mono_btls_x509_revoked_new (MonoBtlsX509Crl *owner, X509_REVOKED *revoked)
19 MonoBtlsX509Revoked *instance;
21 instance = OPENSSL_malloc (sizeof (MonoBtlsX509Revoked));
22 memset (instance, 0, sizeof (MonoBtlsX509Revoked));
24 instance->owner = mono_btls_x509_crl_ref (owner);
25 instance->revoked = revoked;
26 return instance;
29 MONO_API void
30 mono_btls_x509_revoked_free (MonoBtlsX509Revoked *revoked)
32 mono_btls_x509_crl_free (revoked->owner);
33 OPENSSL_free (revoked);
36 MONO_API int
37 mono_btls_x509_revoked_get_serial_number (MonoBtlsX509Revoked *revoked, char *buffer, int size)
39 ASN1_INTEGER *serial;
41 serial = revoked->revoked->serialNumber;
42 if (serial->length == 0 || serial->length+1 > size)
43 return 0;
45 memcpy (buffer, serial->data, serial->length);
46 return serial->length;
49 MONO_API int64_t
50 mono_btls_x509_revoked_get_revocation_date (MonoBtlsX509Revoked *revoked)
52 ASN1_TIME *date;
54 date = revoked->revoked->revocationDate;
55 if (!date)
56 return 0;
58 return mono_btls_util_asn1_time_to_ticks (date);
61 MONO_API int
62 mono_btls_x509_revoked_get_reason (MonoBtlsX509Revoked *revoked)
64 return revoked->revoked->reason;
67 MONO_API int
68 mono_btls_x509_revoked_get_sequence (MonoBtlsX509Revoked *revoked)
70 return revoked->revoked->sequence;