6 #include <openssl/md5.h>
7 #include <openssl/sha.h>
9 #include "include/types.h"
10 #include "objclass/objclass.h"
16 int md5_method(cls_method_context_t ctx
, char *indata
, int datalen
,
17 char **outdata
, int *outdatalen
)
22 cls_log("md5 method");
23 cls_log("indata=%.*s data_len=%d", datalen
, indata
, datalen
);
25 md
= (unsigned char *)cls_alloc(MD5_DIGEST_LENGTH
);
30 MD5_Update(&c
, indata
, (unsigned long)datalen
);
33 *outdata
= (char *)md
;
34 *outdatalen
= MD5_DIGEST_LENGTH
;
39 int sha1_method(cls_method_context_t ctx
, char *indata
, int datalen
,
40 char **outdata
, int *outdatalen
)
45 cls_log("sha1 method");
46 cls_log("indata=%.*s data_len=%d", datalen
, indata
, datalen
);
48 md
= (unsigned char *)cls_alloc(SHA_DIGEST_LENGTH
);
53 SHA1_Update(&c
, indata
, (unsigned long)datalen
);
56 *outdata
= (char *)md
;
57 *outdatalen
= SHA_DIGEST_LENGTH
;
64 cls_log("Loaded crypto class!");
67 cls_method_handle_t h_md5
;
68 cls_method_handle_t h_sha1
;
70 cls_register("crypto", &h_class
);
71 cls_register_method(h_class
, "md5", CLS_METHOD_RD
, md5_method
, &h_md5
);
72 cls_register_method(h_class
, "sha1", CLS_METHOD_RD
, sha1_method
, &h_sha1
);