[tls] Use our own ASN.1 routines for certificate parsing
[people/asdlkf/gpxe.git] / src / include / gpxe / x509.h
1 #ifndef _GPXE_X509_H
2 #define _GPXE_X509_H
3
4 /** @file
5  *
6  * X.509 certificates
7  *
8  */
9
10 #include <stdint.h>
11
12 struct asn1_cursor;
13
14 /** An X.509 RSA public key */
15 struct x509_rsa_public_key {
16         /** Modulus */
17         uint8_t *modulus;
18         /** Modulus length */
19         size_t modulus_len;
20         /** Exponent */
21         uint8_t *exponent;
22         /** Exponent length */
23         size_t exponent_len;
24 };
25
26 /**
27  * Free X.509 RSA public key
28  *
29  * @v rsa_pubkey        RSA public key
30  */
31 static inline void
32 x509_free_rsa_public_key ( struct x509_rsa_public_key *rsa_pubkey ) {
33         free ( rsa_pubkey->modulus );
34 }
35
36 extern int x509_rsa_public_key ( const struct asn1_cursor *certificate,
37                                  struct x509_rsa_public_key *rsa_pubkey );
38
39 #endif /* _GPXE_X509_H */