blob: fdaa92647bb372b1382cc0412b56cfadec6660b4 [file] [log] [blame]
/*
* scapi.h
*/
#ifndef _SCAPI_H
#define _SCAPI_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* Authentication/privacy transform bitlengths.
*/
#define SNMP_TRANS_AUTHLEN_HMACMD5 128
#define SNMP_TRANS_AUTHLEN_HMACSHA1 160
#define SNMP_TRANS_AUTHLEN_HMAC96 96
#define SNMP_TRANS_PRIVLEN_1DES 64
#define SNMP_TRANS_PRIVLEN_1DES_IV 64
/*
* Prototypes.
*/
int sc_get_properlength(oid *hashtype, u_int hashtype_len);
int sc_init (void);
int sc_shutdown (int majorID, int minorID, void *serverarg,
void *clientarg);
int sc_random ( u_char *buf, size_t *buflen);
int sc_generate_keyed_hash (
oid *authtype, size_t authtypelen,
u_char *key, u_int keylen,
u_char *message, u_int msglen,
u_char *MAC, size_t *maclen);
int sc_check_keyed_hash (
oid *authtype, size_t authtypelen,
u_char *key, u_int keylen,
u_char *message, u_int msglen,
u_char *MAC, u_int maclen);
int sc_encrypt ( oid *privtype, size_t privtypelen,
u_char *key, u_int keylen,
u_char *iv, u_int ivlen,
u_char *plaintext, u_int ptlen,
u_char *ciphertext, size_t *ctlen);
int sc_decrypt ( oid *privtype, size_t privtypelen,
u_char *key, u_int keylen,
u_char *iv, u_int ivlen,
u_char *ciphertext, u_int ctlen,
u_char *plaintext, size_t *ptlen);
int sc_hash(oid *hashtype, size_t hashtypelen, u_char *buf, size_t buf_len,
u_char *MAC, size_t *MAC_len);
int sc_get_transform_type(oid *hashtype, u_int hashtype_len,
int (**hash_fn)(
const int mode, void **context,
const u_char *data, const int data_len,
u_char **digest, size_t *digest_len));
/*
* All functions devolve to the following block if we can't do cryptography
*/
#define _SCAPI_NOT_CONFIGURED \
{ \
DEBUGPL(("SCAPI not configured"); \
return SNMPERR_SC_NOT_CONFIGURED; \
}
/* define a transform type if we're using the internal md5 support */
#ifdef USE_INTERNAL_MD5
#define INTERNAL_MD5 1
#endif
#ifdef __cplusplus
}
#endif
#endif /* _SCAPI_H */