Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | #include <stdio.h> | - |
11 | #include "internal/cryptlib.h" | - |
12 | #include <openssl/bn.h> | - |
13 | #include <openssl/evp.h> | - |
14 | #include <openssl/asn1.h> | - |
15 | #include <openssl/x509.h> | - |
16 | #include "internal/x509_int.h" | - |
17 | #include <openssl/objects.h> | - |
18 | #include <openssl/buffer.h> | - |
19 | | - |
20 | X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey) | - |
21 | { | - |
22 | X509 *ret = NULL; | - |
23 | X509_CINF *xi = NULL; | - |
24 | X509_NAME *xn; | - |
25 | EVP_PKEY *pubkey = NULL; | - |
26 | | - |
27 | if ((ret = X509_new()) == NULL) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
28 | X509err(X509_F_X509_REQ_TO_X509, ERR_R_MALLOC_FAILURE); | - |
29 | return NULL; never executed: return ((void *)0) ; | 0 |
30 | } | - |
31 | | - |
32 | | - |
33 | xi = &ret->cert_info; | - |
34 | | - |
35 | if (sk_X509_ATTRIBUTE_num(r->req_info.attributes) != 0) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
36 | if ((xi->version = ASN1_INTEGER_new()) == NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
37 | goto err; never executed: goto err; | 0 |
38 | if (!ASN1_INTEGER_set(xi->version, 2))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
39 | goto err; never executed: goto err; | 0 |
40 | | - |
41 | | - |
42 | } never executed: end of block | 0 |
43 | | - |
44 | xn = X509_REQ_get_subject_name(r); | - |
45 | if (X509_set_subject_name(ret, xn) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
46 | goto err; never executed: goto err; | 0 |
47 | if (X509_set_issuer_name(ret, xn) == 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
48 | goto err; never executed: goto err; | 0 |
49 | | - |
50 | if (X509_gmtime_adj(xi->validity.notBefore, 0) == NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
51 | goto err; never executed: goto err; | 0 |
52 | if (X509_gmtime_adj(xi->validity.notAfter, (long)60 * 60 * 24 * days) ==TRUE | never evaluated | FALSE | never evaluated |
| 0 |
53 | NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
54 | goto err; never executed: goto err; | 0 |
55 | | - |
56 | pubkey = X509_REQ_get0_pubkey(r); | - |
57 | if (pubkey == NULL || !X509_set_pubkey(ret, pubkey))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
58 | goto err; never executed: goto err; | 0 |
59 | | - |
60 | if (!X509_sign(ret, pkey, EVP_md5()))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
61 | goto err; never executed: goto err; | 0 |
62 | return ret; never executed: return ret; | 0 |
63 | | - |
64 | err: | - |
65 | X509_free(ret); | - |
66 | return NULL; never executed: return ((void *)0) ; | 0 |
67 | } | - |
| | |