diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2018-02-28 10:24:54 -0600 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-06-28 09:06:30 +0200 |
commit | 8a735d5eb7e7033d7bcda6de6df622a84d264bf1 (patch) | |
tree | 81dec0119db92789e218f6a583355c4b2407c2a1 /include | |
parent | d038c4dee76ff8dff93101f5807a78f21064824c (diff) | |
download | libssh-8a735d5eb7e7033d7bcda6de6df622a84d264bf1.tar.gz libssh-8a735d5eb7e7033d7bcda6de6df622a84d264bf1.tar.xz libssh-8a735d5eb7e7033d7bcda6de6df622a84d264bf1.zip |
chacha: packet decryption
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/libssh/crypto.h | 4 | ||||
-rw-r--r-- | include/libssh/packet.h | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/include/libssh/crypto.h b/include/libssh/crypto.h index f41b7249..4064481d 100644 --- a/include/libssh/crypto.h +++ b/include/libssh/crypto.h @@ -155,6 +155,10 @@ struct ssh_cipher_struct { unsigned long len); void (*aead_encrypt)(struct ssh_cipher_struct *cipher, void *in, void *out, size_t len, uint8_t *mac, uint64_t seq); + int (*aead_decrypt_length)(struct ssh_cipher_struct *cipher, void *in, + uint8_t *out, size_t len, uint64_t seq); + int (*aead_decrypt)(struct ssh_cipher_struct *cipher, void *complete_packet, uint8_t *out, + size_t encrypted_size, uint64_t seq); void (*cleanup)(struct ssh_cipher_struct *cipher); }; diff --git a/include/libssh/packet.h b/include/libssh/packet.h index 3a84eb70..b10308f7 100644 --- a/include/libssh/packet.h +++ b/include/libssh/packet.h @@ -78,8 +78,9 @@ void ssh_packet_set_default_callbacks(ssh_session session); void ssh_packet_process(ssh_session session, uint8_t type); /* PACKET CRYPT */ -uint32_t ssh_packet_decrypt_len(ssh_session session, char *crypted); -int ssh_packet_decrypt(ssh_session session, void *packet, unsigned int len); +uint32_t ssh_packet_decrypt_len(ssh_session session, uint8_t *destination, uint8_t *source); +int ssh_packet_decrypt(ssh_session session, uint8_t *destination, uint8_t *source, + size_t start, size_t encrypted_size); unsigned char *ssh_packet_encrypt(ssh_session session, void *packet, unsigned int len); |