| 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 |