Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509/x509type.c |
Source code | Switch to Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | /* | - | ||||||||||||
2 | * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. | - | ||||||||||||
3 | * | - | ||||||||||||
4 | * Licensed under the OpenSSL license (the "License"). You may not use | - | ||||||||||||
5 | * this file except in compliance with the License. You can obtain a copy | - | ||||||||||||
6 | * in the file LICENSE in the source distribution or at | - | ||||||||||||
7 | * https://www.openssl.org/source/license.html | - | ||||||||||||
8 | */ | - | ||||||||||||
9 | - | |||||||||||||
10 | #include <stdio.h> | - | ||||||||||||
11 | #include "internal/cryptlib.h" | - | ||||||||||||
12 | #include <openssl/evp.h> | - | ||||||||||||
13 | #include <openssl/objects.h> | - | ||||||||||||
14 | #include <openssl/x509.h> | - | ||||||||||||
15 | - | |||||||||||||
16 | int X509_certificate_type(const X509 *x, const EVP_PKEY *pkey) | - | ||||||||||||
17 | { | - | ||||||||||||
18 | const EVP_PKEY *pk; | - | ||||||||||||
19 | int ret = 0, i; | - | ||||||||||||
20 | - | |||||||||||||
21 | if (x == NULL)
| 0 | ||||||||||||
22 | return 0; never executed: return 0; | 0 | ||||||||||||
23 | - | |||||||||||||
24 | if (pkey == NULL)
| 0 | ||||||||||||
25 | pk = X509_get0_pubkey(x); never executed: pk = X509_get0_pubkey(x); | 0 | ||||||||||||
26 | else | - | ||||||||||||
27 | pk = pkey; never executed: pk = pkey; | 0 | ||||||||||||
28 | - | |||||||||||||
29 | if (pk == NULL)
| 0 | ||||||||||||
30 | return 0; never executed: return 0; | 0 | ||||||||||||
31 | - | |||||||||||||
32 | switch (EVP_PKEY_id(pk)) { | - | ||||||||||||
33 | case EVP_PKEY_RSA: never executed: case 6: | 0 | ||||||||||||
34 | ret = EVP_PK_RSA | EVP_PKT_SIGN; | - | ||||||||||||
35 | /* if (!sign only extension) */ | - | ||||||||||||
36 | ret |= EVP_PKT_ENC; | - | ||||||||||||
37 | break; never executed: break; | 0 | ||||||||||||
38 | case EVP_PKEY_RSA_PSS: never executed: case 912: | 0 | ||||||||||||
39 | ret = EVP_PK_RSA | EVP_PKT_SIGN; | - | ||||||||||||
40 | break; never executed: break; | 0 | ||||||||||||
41 | case EVP_PKEY_DSA: never executed: case 116: | 0 | ||||||||||||
42 | ret = EVP_PK_DSA | EVP_PKT_SIGN; | - | ||||||||||||
43 | break; never executed: break; | 0 | ||||||||||||
44 | case EVP_PKEY_EC: never executed: case 408: | 0 | ||||||||||||
45 | ret = EVP_PK_EC | EVP_PKT_SIGN | EVP_PKT_EXCH; | - | ||||||||||||
46 | break; never executed: break; | 0 | ||||||||||||
47 | case EVP_PKEY_ED448: never executed: case 1088: | 0 | ||||||||||||
48 | case EVP_PKEY_ED25519: never executed: case 1087: | 0 | ||||||||||||
49 | ret = EVP_PKT_SIGN; | - | ||||||||||||
50 | break; never executed: break; | 0 | ||||||||||||
51 | case EVP_PKEY_DH: never executed: case 28: | 0 | ||||||||||||
52 | ret = EVP_PK_DH | EVP_PKT_EXCH; | - | ||||||||||||
53 | break; never executed: break; | 0 | ||||||||||||
54 | case NID_id_GostR3410_2001: never executed: case 811: | 0 | ||||||||||||
55 | case NID_id_GostR3410_2012_256: never executed: case 979: | 0 | ||||||||||||
56 | case NID_id_GostR3410_2012_512: never executed: case 980: | 0 | ||||||||||||
57 | ret = EVP_PKT_EXCH | EVP_PKT_SIGN; | - | ||||||||||||
58 | break; never executed: break; | 0 | ||||||||||||
59 | default: never executed: default: | 0 | ||||||||||||
60 | break; never executed: break; | 0 | ||||||||||||
61 | } | - | ||||||||||||
62 | - | |||||||||||||
63 | i = X509_get_signature_nid(x); | - | ||||||||||||
64 | if (i && OBJ_find_sigid_algs(i, NULL, &i)) {
| 0 | ||||||||||||
65 | - | |||||||||||||
66 | switch (i) { | - | ||||||||||||
67 | case NID_rsaEncryption: never executed: case 6: | 0 | ||||||||||||
68 | case NID_rsa: never executed: case 19: | 0 | ||||||||||||
69 | ret |= EVP_PKS_RSA; | - | ||||||||||||
70 | break; never executed: break; | 0 | ||||||||||||
71 | case NID_dsa: never executed: case 116: | 0 | ||||||||||||
72 | case NID_dsa_2: never executed: case 67: | 0 | ||||||||||||
73 | ret |= EVP_PKS_DSA; | - | ||||||||||||
74 | break; never executed: break; | 0 | ||||||||||||
75 | case NID_X9_62_id_ecPublicKey: never executed: case 408: | 0 | ||||||||||||
76 | ret |= EVP_PKS_EC; | - | ||||||||||||
77 | break; never executed: break; | 0 | ||||||||||||
78 | default: never executed: default: | 0 | ||||||||||||
79 | break; never executed: break; | 0 | ||||||||||||
80 | } | - | ||||||||||||
81 | } | - | ||||||||||||
82 | - | |||||||||||||
83 | return ret; never executed: return ret; | 0 | ||||||||||||
84 | } | - | ||||||||||||
Source code | Switch to Preprocessed file |