summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
62d0f46)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
redef class String
# returns the md5 digest of the receiver string
# algorithm implemented by L. Peter Deutsch <ghost@aladdin.com>
redef class String
# returns the md5 digest of the receiver string
# algorithm implemented by L. Peter Deutsch <ghost@aladdin.com>
- fun md5: String import String.to_cstring, NativeString.to_s `{
+ fun md5: String do return to_cstring.native_md5.to_s
+end
+
+redef class NativeString
+ private fun native_md5: NativeString `{
md5_state_t state;
md5_byte_t digest[16]; /* result */
char *hex_output = malloc(33*sizeof(char));
int di;
md5_state_t state;
md5_byte_t digest[16]; /* result */
char *hex_output = malloc(33*sizeof(char));
int di;
- char *in_text;
-
- in_text = String_to_cstring(self);
- md5_append(&state, (const md5_byte_t *)in_text, strlen(in_text));
+ md5_append(&state, (const md5_byte_t *)self, strlen(self));
md5_finish(&state, digest);
for (di = 0; di < 16; ++di)
sprintf(hex_output + di * 2, "%02x", digest[di]);
hex_output[32] = '\0';
md5_finish(&state, digest);
for (di = 0; di < 16; ++di)
sprintf(hex_output + di * 2, "%02x", digest[di]);
hex_output[32] = '\0';
- return NativeString_to_s(hex_output);