Coverage Report

Created: 2018-08-29 13:53

/src/openssl/crypto/cmac/cm_ameth.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2010-2016 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/cmac.h>
14
#include "internal/asn1_int.h"
15
16
/*
17
 * CMAC "ASN1" method. This is just here to indicate the maximum CMAC output
18
 * length and to free up a CMAC key.
19
 */
20
21
static int cmac_size(const EVP_PKEY *pkey)
22
0
{
23
0
    return EVP_MAX_BLOCK_LENGTH;
24
0
}
25
26
static void cmac_key_free(EVP_PKEY *pkey)
27
0
{
28
0
    CMAC_CTX *cmctx = EVP_PKEY_get0(pkey);
29
0
    CMAC_CTX_free(cmctx);
30
0
}
31
32
const EVP_PKEY_ASN1_METHOD cmac_asn1_meth = {
33
    EVP_PKEY_CMAC,
34
    EVP_PKEY_CMAC,
35
    0,
36
37
    "CMAC",
38
    "OpenSSL CMAC method",
39
40
    0, 0, 0, 0,
41
42
    0, 0, 0,
43
44
    cmac_size,
45
    0, 0,
46
    0, 0, 0, 0, 0, 0, 0,
47
48
    cmac_key_free,
49
    0,
50
    0, 0
51
};