From: Nikos Mavrogiannopoulos Date: Fri, 13 Oct 2000 14:20:27 +0000 (+0000) Subject: added missing files. They are to handle foreign encryption functions X-Git-Tag: gnutls0-0-4~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff1b83cccadde3ac9e026282ffd063baa106b464;p=thirdparty%2Fgnutls.git added missing files. They are to handle foreign encryption functions --- diff --git a/lib/gnutls_cipher_int.c b/lib/gnutls_cipher_int.c new file mode 100644 index 0000000000..8cfd039000 --- /dev/null +++ b/lib/gnutls_cipher_int.c @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2000 Nikos Mavroyanopoulos + * + * This file is part of GNUTLS. + * + * GNUTLS is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GNUTLS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include +#include "gnutls_int.h" +#include "gnutls_errors.h" + +GNUTLS_CIPHER_HANDLE gnutls_cipher_init( BulkCipherAlgorithm cipher, void* key, int keysize, void* iv, int ivsize) +{ +GNUTLS_CIPHER_HANDLE ret; + + switch (cipher) { + case GNUTLS_NULL: + ret = GNUTLS_CIPHER_FAILED; + break; + case GNUTLS_3DES: + ret = gcry_cipher_open(GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_CBC, 0); + break; + default: + ret = GNUTLS_CIPHER_FAILED; + } + if (ret!=NULL) { + gcry_cipher_setkey(ret, key, keysize); + gcry_cipher_setiv(ret, iv, ivsize); + } + +return ret; +} + +int gnutls_cipher_encrypt(GNUTLS_CIPHER_HANDLE handle, void* text, int textlen) { + if (handle!=NULL) { + gcry_cipher_encrypt( handle, text, textlen, text, textlen); + } + return 0; +} + +int gnutls_cipher_decrypt(GNUTLS_CIPHER_HANDLE handle, void* ciphertext, int ciphertextlen) { + if (handle!=NULL) { + gcry_cipher_decrypt( handle, ciphertext, ciphertextlen, ciphertext, ciphertextlen); + } + return 0; +} + +void gnutls_cipher_deinit(GNUTLS_CIPHER_HANDLE handle) { + if (handle!=NULL) { + gcry_cipher_close(handle); + } +} diff --git a/lib/gnutls_cipher_int.h b/lib/gnutls_cipher_int.h new file mode 100644 index 0000000000..d3eab5d489 --- /dev/null +++ b/lib/gnutls_cipher_int.h @@ -0,0 +1,4 @@ +GNUTLS_CIPHER_HANDLE gnutls_cipher_init( BulkCipherAlgorithm cipher, void* key, int keysize, void* iv, int ivsize); +int gnutls_cipher_encrypt(GNUTLS_CIPHER_HANDLE handle, void* text, int textlen); +int gnutls_cipher_decrypt(GNUTLS_CIPHER_HANDLE handle, void* ciphertext, int ciphertextlen); +void gnutls_cipher_deinit(GNUTLS_CIPHER_HANDLE handle);