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);