xref: /freebsd/crypto/openssh/openbsd-compat/openssl-compat.c (revision 761efaa70c2ed8d35722b7bc234a46bf2457f876)
1761efaa7SDag-Erling Smørgrav /* $Id: openssl-compat.c,v 1.4 2006/02/22 11:24:47 dtucker Exp $ */
2043840dfSDag-Erling Smørgrav 
3043840dfSDag-Erling Smørgrav /*
4043840dfSDag-Erling Smørgrav  * Copyright (c) 2005 Darren Tucker <dtucker@zip.com.au>
5043840dfSDag-Erling Smørgrav  *
6043840dfSDag-Erling Smørgrav  * Permission to use, copy, modify, and distribute this software for any
7043840dfSDag-Erling Smørgrav  * purpose with or without fee is hereby granted, provided that the above
8043840dfSDag-Erling Smørgrav  * copyright notice and this permission notice appear in all copies.
9043840dfSDag-Erling Smørgrav  *
10043840dfSDag-Erling Smørgrav  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11043840dfSDag-Erling Smørgrav  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12043840dfSDag-Erling Smørgrav  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13043840dfSDag-Erling Smørgrav  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14043840dfSDag-Erling Smørgrav  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
15043840dfSDag-Erling Smørgrav  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
16043840dfSDag-Erling Smørgrav  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17043840dfSDag-Erling Smørgrav  */
18043840dfSDag-Erling Smørgrav 
19043840dfSDag-Erling Smørgrav #include "includes.h"
20043840dfSDag-Erling Smørgrav 
21761efaa7SDag-Erling Smørgrav #ifdef USE_OPENSSL_ENGINE
22761efaa7SDag-Erling Smørgrav # include <openssl/engine.h>
23761efaa7SDag-Erling Smørgrav #endif
24761efaa7SDag-Erling Smørgrav 
25761efaa7SDag-Erling Smørgrav #define SSH_DONT_OVERLOAD_OPENSSL_FUNCS
26043840dfSDag-Erling Smørgrav #include "openssl-compat.h"
27043840dfSDag-Erling Smørgrav 
28043840dfSDag-Erling Smørgrav #ifdef SSH_OLD_EVP
29043840dfSDag-Erling Smørgrav int
30043840dfSDag-Erling Smørgrav ssh_EVP_CipherInit(EVP_CIPHER_CTX *evp, const EVP_CIPHER *type,
31043840dfSDag-Erling Smørgrav     unsigned char *key, unsigned char *iv, int enc)
32043840dfSDag-Erling Smørgrav {
33043840dfSDag-Erling Smørgrav 	EVP_CipherInit(evp, type, key, iv, enc);
34043840dfSDag-Erling Smørgrav 	return 1;
35043840dfSDag-Erling Smørgrav }
36043840dfSDag-Erling Smørgrav 
37043840dfSDag-Erling Smørgrav int
38043840dfSDag-Erling Smørgrav ssh_EVP_Cipher(EVP_CIPHER_CTX *evp, char *dst, char *src, int len)
39043840dfSDag-Erling Smørgrav {
40043840dfSDag-Erling Smørgrav 	EVP_Cipher(evp, dst, src, len);
41043840dfSDag-Erling Smørgrav 	return 1;
42043840dfSDag-Erling Smørgrav }
43043840dfSDag-Erling Smørgrav 
44043840dfSDag-Erling Smørgrav int
45043840dfSDag-Erling Smørgrav ssh_EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *evp)
46043840dfSDag-Erling Smørgrav {
47043840dfSDag-Erling Smørgrav 	EVP_CIPHER_CTX_cleanup(evp);
48043840dfSDag-Erling Smørgrav 	return 1;
49043840dfSDag-Erling Smørgrav }
50043840dfSDag-Erling Smørgrav #endif
51761efaa7SDag-Erling Smørgrav 
52761efaa7SDag-Erling Smørgrav #ifdef	USE_OPENSSL_ENGINE
53761efaa7SDag-Erling Smørgrav void
54761efaa7SDag-Erling Smørgrav ssh_SSLeay_add_all_algorithms(void)
55761efaa7SDag-Erling Smørgrav {
56761efaa7SDag-Erling Smørgrav 	SSLeay_add_all_algorithms();
57761efaa7SDag-Erling Smørgrav 
58761efaa7SDag-Erling Smørgrav 	/* Enable use of crypto hardware */
59761efaa7SDag-Erling Smørgrav 	ENGINE_load_builtin_engines();
60761efaa7SDag-Erling Smørgrav 	ENGINE_register_all_complete();
61761efaa7SDag-Erling Smørgrav }
62761efaa7SDag-Erling Smørgrav #endif
63