OpenCoverage

m_md5_sha1.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/evp/m_md5_sha1.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: m_md5_sha1.c,v 1.2 2018/08/10 17:30:29 jsing Exp $ */-
2/*-
3 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>-
4 *-
5 * Permission to use, copy, modify, and distribute this software for any-
6 * purpose with or without fee is hereby granted, provided that the above-
7 * copyright notice and this permission notice appear in all copies.-
8 *-
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES-
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF-
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR-
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES-
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN-
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF-
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.-
16 */-
17-
18#include <openssl/evp.h>-
19#include <openssl/md5.h>-
20#include <openssl/objects.h>-
21#include <openssl/sha.h>-
22-
23#ifndef OPENSSL_NO_RSA-
24#include <openssl/rsa.h>-
25#endif-
26-
27struct md5_sha1_ctx {-
28 MD5_CTX md5;-
29 SHA_CTX sha1;-
30};-
31-
32static int-
33md5_sha1_init(EVP_MD_CTX *ctx)-
34{-
35 struct md5_sha1_ctx *mdctx = ctx->md_data;-
36-
37 if (!MD5_Init(&mdctx->md5))
!MD5_Init(&mdctx->md5)Description
TRUEnever evaluated
FALSEevaluated 85 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-85
38 return 0;
never executed: return 0;
0
39 if (!SHA1_Init(&mdctx->sha1))
!SHA1_Init(&mdctx->sha1)Description
TRUEnever evaluated
FALSEevaluated 85 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-85
40 return 0;
never executed: return 0;
0
41-
42 return 1;
executed 85 times by 3 tests: return 1;
Executed by:
  • evptest
  • servertest
  • ssltest
85
43}-
44-
45static int -
46md5_sha1_update(EVP_MD_CTX *ctx, const void *data, size_t count)-
47{-
48 struct md5_sha1_ctx *mdctx = ctx->md_data;-
49-
50 if (!MD5_Update(&mdctx->md5, data, count))
!MD5_Update(&m..., data, count)Description
TRUEnever evaluated
FALSEevaluated 563 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-563
51 return 0;
never executed: return 0;
0
52 if (!SHA1_Update(&mdctx->sha1, data, count))
!SHA1_Update(&..., data, count)Description
TRUEnever evaluated
FALSEevaluated 563 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-563
53 return 0;
never executed: return 0;
0
54-
55 return 1;
executed 563 times by 3 tests: return 1;
Executed by:
  • evptest
  • servertest
  • ssltest
563
56}-
57-
58static int-
59md5_sha1_final(EVP_MD_CTX *ctx, unsigned char *out)-
60{-
61 struct md5_sha1_ctx *mdctx = ctx->md_data;-
62-
63 if (!MD5_Final(out, &mdctx->md5))
!MD5_Final(out, &mdctx->md5)Description
TRUEnever evaluated
FALSEevaluated 209 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-209
64 return 0;
never executed: return 0;
0
65 if (!SHA1_Final(out + MD5_DIGEST_LENGTH, &mdctx->sha1))
!SHA1_Final(ou... &mdctx->sha1)Description
TRUEnever evaluated
FALSEevaluated 209 times by 3 tests
Evaluated by:
  • evptest
  • servertest
  • ssltest
0-209
66 return 0;
never executed: return 0;
0
67-
68 return 1;
executed 209 times by 3 tests: return 1;
Executed by:
  • evptest
  • servertest
  • ssltest
209
69}-
70-
71static const EVP_MD md5_sha1_md = {-
72 .type = NID_md5_sha1,-
73 .pkey_type = NID_md5_sha1,-
74 .md_size = MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH,-
75 .flags = 0,-
76 .init = md5_sha1_init,-
77 .update = md5_sha1_update,-
78 .final = md5_sha1_final,-
79 .block_size = MD5_CBLOCK, /* MD5_CBLOCK == SHA_CBLOCK */-
80 .ctx_size = sizeof(EVP_MD *) + sizeof(struct md5_sha1_ctx),-
81#ifndef OPENSSL_NO_RSA-
82 .sign = (evp_sign_method *)RSA_sign,-
83 .verify = (evp_verify_method *)RSA_verify,-
84 .required_pkey_type = {-
85 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,-
86 },-
87#endif-
88};-
89-
90const EVP_MD *-
91EVP_md5_sha1(void)-
92{-
93 return &md5_sha1_md;
executed 1105 times by 33 tests: return &md5_sha1_md;
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
1105
94}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2