| GCC Code Coverage Report | |||||||||||||||||||||
        
  | 
    |||||||||||||||||||||
| Line | Branch | Exec | Source | 
1  | 
    /* $OpenBSD: e_cast.c,v 1.7 2014/07/11 08:44:48 jsing Exp $ */  | 
    ||
2  | 
    /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)  | 
    ||
3  | 
    * All rights reserved.  | 
    ||
4  | 
    *  | 
    ||
5  | 
    * This package is an SSL implementation written  | 
    ||
6  | 
    * by Eric Young (eay@cryptsoft.com).  | 
    ||
7  | 
    * The implementation was written so as to conform with Netscapes SSL.  | 
    ||
8  | 
    *  | 
    ||
9  | 
    * This library is free for commercial and non-commercial use as long as  | 
    ||
10  | 
    * the following conditions are aheared to. The following conditions  | 
    ||
11  | 
    * apply to all code found in this distribution, be it the RC4, RSA,  | 
    ||
12  | 
    * lhash, DES, etc., code; not just the SSL code. The SSL documentation  | 
    ||
13  | 
    * included with this distribution is covered by the same copyright terms  | 
    ||
14  | 
    * except that the holder is Tim Hudson (tjh@cryptsoft.com).  | 
    ||
15  | 
    *  | 
    ||
16  | 
    * Copyright remains Eric Young's, and as such any Copyright notices in  | 
    ||
17  | 
    * the code are not to be removed.  | 
    ||
18  | 
    * If this package is used in a product, Eric Young should be given attribution  | 
    ||
19  | 
    * as the author of the parts of the library used.  | 
    ||
20  | 
    * This can be in the form of a textual message at program startup or  | 
    ||
21  | 
    * in documentation (online or textual) provided with the package.  | 
    ||
22  | 
    *  | 
    ||
23  | 
    * Redistribution and use in source and binary forms, with or without  | 
    ||
24  | 
    * modification, are permitted provided that the following conditions  | 
    ||
25  | 
    * are met:  | 
    ||
26  | 
    * 1. Redistributions of source code must retain the copyright  | 
    ||
27  | 
    * notice, this list of conditions and the following disclaimer.  | 
    ||
28  | 
    * 2. Redistributions in binary form must reproduce the above copyright  | 
    ||
29  | 
    * notice, this list of conditions and the following disclaimer in the  | 
    ||
30  | 
    * documentation and/or other materials provided with the distribution.  | 
    ||
31  | 
    * 3. All advertising materials mentioning features or use of this software  | 
    ||
32  | 
    * must display the following acknowledgement:  | 
    ||
33  | 
    * "This product includes cryptographic software written by  | 
    ||
34  | 
    * Eric Young (eay@cryptsoft.com)"  | 
    ||
35  | 
    * The word 'cryptographic' can be left out if the rouines from the library  | 
    ||
36  | 
    * being used are not cryptographic related :-).  | 
    ||
37  | 
    * 4. If you include any Windows specific code (or a derivative thereof) from  | 
    ||
38  | 
    * the apps directory (application code) you must include an acknowledgement:  | 
    ||
39  | 
    * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"  | 
    ||
40  | 
    *  | 
    ||
41  | 
    * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND  | 
    ||
42  | 
    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | 
    ||
43  | 
    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | 
    ||
44  | 
    * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE  | 
    ||
45  | 
    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  | 
    ||
46  | 
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS  | 
    ||
47  | 
    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  | 
    ||
48  | 
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  | 
    ||
49  | 
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY  | 
    ||
50  | 
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  | 
    ||
51  | 
    * SUCH DAMAGE.  | 
    ||
52  | 
    *  | 
    ||
53  | 
    * The licence and distribution terms for any publically available version or  | 
    ||
54  | 
    * derivative of this code cannot be changed. i.e. this code cannot simply be  | 
    ||
55  | 
    * copied and put under another distribution licence  | 
    ||
56  | 
    * [including the GNU Public Licence.]  | 
    ||
57  | 
    */  | 
    ||
58  | 
    |||
59  | 
    #include <stdio.h>  | 
    ||
60  | 
    |||
61  | 
    #include <openssl/opensslconf.h>  | 
    ||
62  | 
    |||
63  | 
    #ifndef OPENSSL_NO_CAST  | 
    ||
64  | 
    |||
65  | 
    #include <openssl/cast.h>  | 
    ||
66  | 
    #include <openssl/evp.h>  | 
    ||
67  | 
    #include <openssl/objects.h>  | 
    ||
68  | 
    |||
69  | 
    #include "evp_locl.h"  | 
    ||
70  | 
    |||
71  | 
    static int cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,  | 
    ||
72  | 
    const unsigned char *iv, int enc);  | 
    ||
73  | 
    |||
74  | 
    typedef struct { | 
    ||
75  | 
    CAST_KEY ks;  | 
    ||
76  | 
    } EVP_CAST_KEY;  | 
    ||
77  | 
    |||
78  | 
    #define data(ctx) EVP_C_DATA(EVP_CAST_KEY,ctx)  | 
    ||
79  | 
    |||
80  | 
    ✗✓✓✗ ✓✗✓✓ ✓✗✗✓ ✗✓✓✗ ✗✓✓✓  | 
    17164  | 
    IMPLEMENT_BLOCK_CIPHER(cast5, ks, CAST, EVP_CAST_KEY,  | 
    
81  | 
    NID_cast5, 8, CAST_KEY_LENGTH, 8, 64,  | 
    ||
82  | 
    EVP_CIPH_VARIABLE_LENGTH, cast_init_key, NULL,  | 
    ||
83  | 
    EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, NULL)  | 
    ||
84  | 
    |||
85  | 
    static int  | 
    ||
86  | 
    cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,  | 
    ||
87  | 
    const unsigned char *iv, int enc)  | 
    ||
88  | 
    { | 
    ||
89  | 
    128  | 
    CAST_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);  | 
    |
90  | 
    64  | 
    return 1;  | 
    |
91  | 
    }  | 
    ||
92  | 
    #endif  | 
    
| Generated by: GCOVR (Version 3.3) |