summaryrefslogtreecommitdiffstats
path: root/libssh/include/libssh/wrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/include/libssh/wrapper.h')
-rw-r--r--libssh/include/libssh/wrapper.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/libssh/include/libssh/wrapper.h b/libssh/include/libssh/wrapper.h
index 7374a88a..a327e188 100644
--- a/libssh/include/libssh/wrapper.h
+++ b/libssh/include/libssh/wrapper.h
@@ -22,6 +22,7 @@
#define WRAPPER_H_
#include "config.h"
+#include "libssh/libssh.h"
#include "libssh/libcrypto.h"
#include "libssh/libgcrypt.h"
@@ -34,6 +35,9 @@ enum ssh_mac_e {
enum ssh_hmac_e {
SSH_HMAC_SHA1 = 1,
+ SSH_HMAC_SHA256,
+ SSH_HMAC_SHA384,
+ SSH_HMAC_SHA512,
SSH_HMAC_MD5
};
@@ -42,16 +46,36 @@ enum ssh_des_e {
SSH_DES
};
+struct ssh_hmac_struct {
+ const char* name;
+ enum ssh_hmac_e hmac_type;
+};
+
typedef struct ssh_mac_ctx_struct *ssh_mac_ctx;
MD5CTX md5_init(void);
void md5_update(MD5CTX c, const void *data, unsigned long len);
void md5_final(unsigned char *md,MD5CTX c);
+
SHACTX sha1_init(void);
void sha1_update(SHACTX c, const void *data, unsigned long len);
void sha1_final(unsigned char *md,SHACTX c);
void sha1(unsigned char *digest,int len,unsigned char *hash);
+
+SHA256CTX sha256_init(void);
+void sha256_update(SHA256CTX c, const void *data, unsigned long len);
+void sha256_final(unsigned char *md,SHA256CTX c);
void sha256(unsigned char *digest, int len, unsigned char *hash);
+SHA384CTX sha384_init(void);
+void sha384_update(SHA384CTX c, const void *data, unsigned long len);
+void sha384_final(unsigned char *md,SHA384CTX c);
+void sha384(unsigned char *digest, int len, unsigned char *hash);
+
+SHA512CTX sha512_init(void);
+void sha512_update(SHA512CTX c, const void *data, unsigned long len);
+void sha512_final(unsigned char *md,SHA512CTX c);
+void sha512(unsigned char *digest, int len, unsigned char *hash);
+
void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen);
EVPCTX evp_init(int nid);
void evp_update(EVPCTX ctx, const void *data, unsigned long len);
@@ -64,11 +88,16 @@ void ssh_mac_final(unsigned char *md, ssh_mac_ctx ctx);
HMACCTX hmac_init(const void *key,int len, enum ssh_hmac_e type);
void hmac_update(HMACCTX c, const void *data, unsigned long len);
void hmac_final(HMACCTX ctx,unsigned char *hashmacbuf,unsigned int *len);
+size_t hmac_digest_len(enum ssh_hmac_e type);
int crypt_set_algorithms(ssh_session session, enum ssh_des_e des_type);
int crypt_set_algorithms_server(ssh_session session);
struct ssh_crypto_struct *crypto_new(void);
void crypto_free(struct ssh_crypto_struct *crypto);
+void ssh_reseed(void);
+
+struct ssh_hmac_struct *ssh_get_hmactab(void);
+const char *ssh_hmac_type_to_string(enum ssh_hmac_e hmac_type);
#endif /* WRAPPER_H_ */