X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fopenssl%2Fcipher.h;h=9b6221bcd8917ecef96abb7ef6817437c26e4b20;hb=3a4fe104a06b73fd19c550546e7c65a59ff2afe3;hp=d17e25455daec4222a1864591223f4674f094b86;hpb=1fd1d5bd9330e02ab5dc32ad027f654ff2620099;p=tinc diff --git a/src/openssl/cipher.h b/src/openssl/cipher.h index d17e2545..9b6221bc 100644 --- a/src/openssl/cipher.h +++ b/src/openssl/cipher.h @@ -12,11 +12,9 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id$ + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef __TINC_CIPHER_H__ @@ -24,12 +22,14 @@ #include +#define CIPHER_MAX_BLOCK_SIZE EVP_MAX_BLOCK_LENGTH +#define CIPHER_MAX_KEY_SIZE EVP_MAX_KEY_LENGTH +#define CIPHER_MAX_IV_SIZE EVP_MAX_IV_LENGTH + typedef struct cipher { EVP_CIPHER_CTX ctx; const EVP_CIPHER *cipher; - char *key; - uint16_t keylen; - uint16_t blklen; + struct cipher_counter *counter; } cipher_t; extern bool cipher_open_by_name(cipher_t *, const char *); @@ -37,12 +37,13 @@ extern bool cipher_open_by_nid(cipher_t *, int); extern bool cipher_open_blowfish_ofb(cipher_t *); extern void cipher_close(cipher_t *); extern size_t cipher_keylength(const cipher_t *); -extern void cipher_get_key(const cipher_t *, void *); extern bool cipher_set_key(cipher_t *, void *, bool); extern bool cipher_set_key_from_rsa(cipher_t *, void *, size_t, bool); -extern bool cipher_regenerate_key(cipher_t *, bool); +extern bool cipher_set_counter(cipher_t *, const void *, size_t); +extern bool cipher_set_counter_key(cipher_t *, void *); extern bool cipher_encrypt(cipher_t *, const void *indata, size_t inlen, void *outdata, size_t *outlen, bool); extern bool cipher_decrypt(cipher_t *, const void *indata, size_t inlen, void *outdata, size_t *outlen, bool); +extern bool cipher_counter_xor(cipher_t *, const void *indata, size_t inlen, void *outdata); extern int cipher_get_nid(const cipher_t *); extern bool cipher_active(const cipher_t *);