diff options
-rw-r--r-- | src/lib/libcrypto/Symbols.namespace | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/camellia/camellia.c | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/hidden/openssl/camellia.h | 39 |
3 files changed, 60 insertions, 1 deletions
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace index 21f24c9ef5..5862beeeb0 100644 --- a/src/lib/libcrypto/Symbols.namespace +++ b/src/lib/libcrypto/Symbols.namespace | |||
@@ -2604,3 +2604,13 @@ _libre_WHIRLPOOL_Update | |||
2604 | _libre_WHIRLPOOL_BitUpdate | 2604 | _libre_WHIRLPOOL_BitUpdate |
2605 | _libre_WHIRLPOOL_Final | 2605 | _libre_WHIRLPOOL_Final |
2606 | _libre_WHIRLPOOL | 2606 | _libre_WHIRLPOOL |
2607 | _libre_Camellia_set_key | ||
2608 | _libre_Camellia_encrypt | ||
2609 | _libre_Camellia_decrypt | ||
2610 | _libre_Camellia_ecb_encrypt | ||
2611 | _libre_Camellia_cbc_encrypt | ||
2612 | _libre_Camellia_cfb128_encrypt | ||
2613 | _libre_Camellia_cfb1_encrypt | ||
2614 | _libre_Camellia_cfb8_encrypt | ||
2615 | _libre_Camellia_ofb128_encrypt | ||
2616 | _libre_Camellia_ctr128_encrypt | ||
diff --git a/src/lib/libcrypto/camellia/camellia.c b/src/lib/libcrypto/camellia/camellia.c index af6b85ff8e..94e81a4773 100644 --- a/src/lib/libcrypto/camellia/camellia.c +++ b/src/lib/libcrypto/camellia/camellia.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: camellia.c,v 1.13 2024/03/29 07:26:21 jsing Exp $ */ | 1 | /* $OpenBSD: camellia.c,v 1.14 2024/03/30 04:58:12 joshua Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . | 3 | * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . |
4 | * ALL RIGHTS RESERVED. | 4 | * ALL RIGHTS RESERVED. |
@@ -591,6 +591,7 @@ Camellia_set_key(const unsigned char *userKey, const int bits, | |||
591 | key->grand_rounds = Camellia_Ekeygen(bits, userKey, key->u.rd_key); | 591 | key->grand_rounds = Camellia_Ekeygen(bits, userKey, key->u.rd_key); |
592 | return 0; | 592 | return 0; |
593 | } | 593 | } |
594 | LCRYPTO_ALIAS(Camellia_set_key); | ||
594 | 595 | ||
595 | void | 596 | void |
596 | Camellia_encrypt(const unsigned char *in, unsigned char *out, | 597 | Camellia_encrypt(const unsigned char *in, unsigned char *out, |
@@ -598,6 +599,7 @@ Camellia_encrypt(const unsigned char *in, unsigned char *out, | |||
598 | { | 599 | { |
599 | Camellia_EncryptBlock_Rounds(key->grand_rounds, in, key->u.rd_key, out); | 600 | Camellia_EncryptBlock_Rounds(key->grand_rounds, in, key->u.rd_key, out); |
600 | } | 601 | } |
602 | LCRYPTO_ALIAS(Camellia_encrypt); | ||
601 | 603 | ||
602 | void | 604 | void |
603 | Camellia_decrypt(const unsigned char *in, unsigned char *out, | 605 | Camellia_decrypt(const unsigned char *in, unsigned char *out, |
@@ -605,6 +607,7 @@ Camellia_decrypt(const unsigned char *in, unsigned char *out, | |||
605 | { | 607 | { |
606 | Camellia_DecryptBlock_Rounds(key->grand_rounds, in, key->u.rd_key, out); | 608 | Camellia_DecryptBlock_Rounds(key->grand_rounds, in, key->u.rd_key, out); |
607 | } | 609 | } |
610 | LCRYPTO_ALIAS(Camellia_decrypt); | ||
608 | 611 | ||
609 | void | 612 | void |
610 | Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, | 613 | Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, |
@@ -617,6 +620,7 @@ Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, | |||
617 | CRYPTO_cbc128_decrypt(in, out, len, key, ivec, | 620 | CRYPTO_cbc128_decrypt(in, out, len, key, ivec, |
618 | (block128_f)Camellia_decrypt); | 621 | (block128_f)Camellia_decrypt); |
619 | } | 622 | } |
623 | LCRYPTO_ALIAS(Camellia_cbc_encrypt); | ||
620 | 624 | ||
621 | /* | 625 | /* |
622 | * The input and output encrypted as though 128bit cfb mode is being | 626 | * The input and output encrypted as though 128bit cfb mode is being |
@@ -632,6 +636,7 @@ Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, | |||
632 | CRYPTO_cfb128_encrypt(in, out, length, key, ivec, num, enc, | 636 | CRYPTO_cfb128_encrypt(in, out, length, key, ivec, num, enc, |
633 | (block128_f)Camellia_encrypt); | 637 | (block128_f)Camellia_encrypt); |
634 | } | 638 | } |
639 | LCRYPTO_ALIAS(Camellia_cfb128_encrypt); | ||
635 | 640 | ||
636 | /* N.B. This expects the input to be packed, MS bit first */ | 641 | /* N.B. This expects the input to be packed, MS bit first */ |
637 | void | 642 | void |
@@ -642,6 +647,7 @@ Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, | |||
642 | CRYPTO_cfb128_1_encrypt(in, out, length, key, ivec, num, enc, | 647 | CRYPTO_cfb128_1_encrypt(in, out, length, key, ivec, num, enc, |
643 | (block128_f)Camellia_encrypt); | 648 | (block128_f)Camellia_encrypt); |
644 | } | 649 | } |
650 | LCRYPTO_ALIAS(Camellia_cfb1_encrypt); | ||
645 | 651 | ||
646 | void | 652 | void |
647 | Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, | 653 | Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, |
@@ -651,6 +657,7 @@ Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, | |||
651 | CRYPTO_cfb128_8_encrypt(in, out, length, key, ivec, num, enc, | 657 | CRYPTO_cfb128_8_encrypt(in, out, length, key, ivec, num, enc, |
652 | (block128_f)Camellia_encrypt); | 658 | (block128_f)Camellia_encrypt); |
653 | } | 659 | } |
660 | LCRYPTO_ALIAS(Camellia_cfb8_encrypt); | ||
654 | 661 | ||
655 | void | 662 | void |
656 | Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, | 663 | Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, |
@@ -661,6 +668,7 @@ Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, | |||
661 | CRYPTO_ctr128_encrypt(in, out, length, key, ivec, ecount_buf, num, | 668 | CRYPTO_ctr128_encrypt(in, out, length, key, ivec, ecount_buf, num, |
662 | (block128_f)Camellia_encrypt); | 669 | (block128_f)Camellia_encrypt); |
663 | } | 670 | } |
671 | LCRYPTO_ALIAS(Camellia_ctr128_encrypt); | ||
664 | 672 | ||
665 | void | 673 | void |
666 | Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, | 674 | Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, |
@@ -671,6 +679,7 @@ Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, | |||
671 | else | 679 | else |
672 | Camellia_decrypt(in, out, key); | 680 | Camellia_decrypt(in, out, key); |
673 | } | 681 | } |
682 | LCRYPTO_ALIAS(Camellia_ecb_encrypt); | ||
674 | 683 | ||
675 | /* | 684 | /* |
676 | * The input and output encrypted as though 128bit ofb mode is being | 685 | * The input and output encrypted as though 128bit ofb mode is being |
@@ -684,3 +693,4 @@ Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, | |||
684 | CRYPTO_ofb128_encrypt(in, out, length, key, ivec, num, | 693 | CRYPTO_ofb128_encrypt(in, out, length, key, ivec, num, |
685 | (block128_f)Camellia_encrypt); | 694 | (block128_f)Camellia_encrypt); |
686 | } | 695 | } |
696 | LCRYPTO_ALIAS(Camellia_ofb128_encrypt); | ||
diff --git a/src/lib/libcrypto/hidden/openssl/camellia.h b/src/lib/libcrypto/hidden/openssl/camellia.h new file mode 100644 index 0000000000..bf7f43b1b3 --- /dev/null +++ b/src/lib/libcrypto/hidden/openssl/camellia.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* $OpenBSD: camellia.h,v 1.1 2024/03/30 04:58:12 joshua Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joshua Sing <joshua@joshuasing.dev> | ||
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 | #ifndef _LIBCRYPTO_CAMELLIA_H | ||
19 | #define _LIBCRYPTO_CAMELLIA_H | ||
20 | |||
21 | #ifndef _MSC_VER | ||
22 | #include_next <openssl/camellia.h> | ||
23 | #else | ||
24 | #include "../include/openssl/camellia.h" | ||
25 | #endif | ||
26 | #include "crypto_namespace.h" | ||
27 | |||
28 | LCRYPTO_USED(Camellia_set_key); | ||
29 | LCRYPTO_USED(Camellia_encrypt); | ||
30 | LCRYPTO_USED(Camellia_decrypt); | ||
31 | LCRYPTO_USED(Camellia_ecb_encrypt); | ||
32 | LCRYPTO_USED(Camellia_cbc_encrypt); | ||
33 | LCRYPTO_USED(Camellia_cfb128_encrypt); | ||
34 | LCRYPTO_USED(Camellia_cfb1_encrypt); | ||
35 | LCRYPTO_USED(Camellia_cfb8_encrypt); | ||
36 | LCRYPTO_USED(Camellia_ofb128_encrypt); | ||
37 | LCRYPTO_USED(Camellia_ctr128_encrypt); | ||
38 | |||
39 | #endif /* _LIBCRYPTO_CAMELLIA_H */ | ||