Coverage Report

Created: 2025-06-13 06:57

/src/openssl/crypto/bf/bf_ecb.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the Apache License 2.0 (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
/*
11
 * BF low level APIs are deprecated for public use, but still ok for internal
12
 * use.
13
 */
14
#include "internal/deprecated.h"
15
16
#include <openssl/blowfish.h>
17
#include "bf_local.h"
18
#include <openssl/opensslv.h>
19
20
/*
21
 * Blowfish as implemented from 'Blowfish: Springer-Verlag paper' (From
22
 * LECTURE NOTES IN COMPUTER SCIENCE 809, FAST SOFTWARE ENCRYPTION, CAMBRIDGE
23
 * SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993)
24
 */
25
26
const char *BF_options(void)
27
0
{
28
0
    return "blowfish(ptr)";
29
0
}
30
31
void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
32
                    const BF_KEY *key, int encrypt)
33
0
{
34
0
    BF_LONG l, d[2];
35
36
0
    n2l(in, l);
37
0
    d[0] = l;
38
0
    n2l(in, l);
39
0
    d[1] = l;
40
0
    if (encrypt)
41
0
        BF_encrypt(d, key);
42
0
    else
43
0
        BF_decrypt(d, key);
44
0
    l = d[0];
45
0
    l2n(l, out);
46
0
    l = d[1];
47
0
    l2n(l, out);
48
0
    l = d[0] = d[1] = 0;
49
0
}