diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-11 17:25:45 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-11 17:25:45 +0000 |
commit | 368c8038f402db5c30eef7fc41ac09b6e6829ef4 (patch) | |
tree | c8f8d08bdb6d46fb3236647b0d62d915ca199239 /ext/digest/md5 | |
parent | b3f7970ef9dbbb8e1470c10747cf45574b6fc399 (diff) | |
download | ruby-368c8038f402db5c30eef7fc41ac09b6e6829ef4.tar.gz |
* ext/digest: Merge from trunk; metadata location changed,
Digest::Base#reset() added, Digest::Base#equal() changed, and
digest/hmac added with some modifications for ruby 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/digest/md5')
-rw-r--r-- | ext/digest/md5/md5.c | 6 | ||||
-rw-r--r-- | ext/digest/md5/md5.h | 2 | ||||
-rw-r--r-- | ext/digest/md5/md5init.c | 8 | ||||
-rw-r--r-- | ext/digest/md5/md5ossl.c | 15 | ||||
-rw-r--r-- | ext/digest/md5/md5ossl.h | 3 |
5 files changed, 7 insertions, 27 deletions
diff --git a/ext/digest/md5/md5.c b/ext/digest/md5/md5.c index 8f49476a19..993bc47a06 100644 --- a/ext/digest/md5/md5.c +++ b/ext/digest/md5/md5.c @@ -418,9 +418,3 @@ MD5_Finish(MD5_CTX *pms, uint8_t *digest) for (i = 0; i < 16; ++i) digest[i] = (uint8_t)(pms->state[i >> 2] >> ((i & 3) << 3)); } - -int MD5_Equal(MD5_CTX* pctx1, MD5_CTX* pctx2) { - return memcmp(pctx1->count, pctx2->count, sizeof(pctx1->count)) == 0 - && memcmp(pctx1->state, pctx2->state, sizeof(pctx1->state)) == 0 - && memcmp(pctx1->buffer, pctx2->buffer, sizeof(pctx1->buffer)) == 0; -} diff --git a/ext/digest/md5/md5.h b/ext/digest/md5/md5.h index a5de6fd97e..f4580ef5e7 100644 --- a/ext/digest/md5/md5.h +++ b/ext/digest/md5/md5.h @@ -67,13 +67,11 @@ typedef struct md5_state_s { #define MD5_Init rb_Digest_MD5_Init #define MD5_Update rb_Digest_MD5_Update #define MD5_Finish rb_Digest_MD5_Finish -#define MD5_Equal rb_Digest_MD5_Equal #endif void MD5_Init _((MD5_CTX *pms)); void MD5_Update _((MD5_CTX *pms, const uint8_t *data, size_t nbytes)); void MD5_Finish _((MD5_CTX *pms, uint8_t *digest)); -int MD5_Equal _((MD5_CTX *pctx1, MD5_CTX *pctx2)); #define MD5_BLOCK_LENGTH 64 #define MD5_DIGEST_LENGTH 16 diff --git a/ext/digest/md5/md5init.c b/ext/digest/md5/md5init.c index 5fddb21c65..6fdf6e0a26 100644 --- a/ext/digest/md5/md5init.c +++ b/ext/digest/md5/md5init.c @@ -14,7 +14,6 @@ static algo_t md5 = { (hash_init_func_t)MD5_Init, (hash_update_func_t)MD5_Update, (hash_finish_func_t)MD5_Finish, - (hash_equal_func_t)MD5_Equal, }; void @@ -29,6 +28,9 @@ Init_md5() cDigest_MD5 = rb_define_class_under(mDigest, "MD5", cDigest_Base); - rb_cvar_set(cDigest_MD5, rb_intern("metadata"), - Data_Wrap_Struct(rb_cObject, 0, 0, &md5), Qtrue); + rb_define_const(cDigest_MD5, "DIGEST_LENGTH", INT2NUM(MD5_DIGEST_LENGTH)); + rb_define_const(cDigest_MD5, "BLOCK_LENGTH", INT2NUM(MD5_BLOCK_LENGTH)); + + rb_ivar_set(cDigest_MD5, rb_intern("metadata"), + Data_Wrap_Struct(rb_cObject, 0, 0, &md5)); } diff --git a/ext/digest/md5/md5ossl.c b/ext/digest/md5/md5ossl.c index 963243c7c9..d94ae2cd2f 100644 --- a/ext/digest/md5/md5ossl.c +++ b/ext/digest/md5/md5ossl.c @@ -1,24 +1,9 @@ /* $Id$ */ #include "md5ossl.h" -#include <sys/types.h> -#include <stdio.h> -#include <string.h> void MD5_Finish(MD5_CTX *pctx, unsigned char *digest) { MD5_Final(digest, pctx); } - -int -MD5_Equal(MD5_CTX* pctx1, MD5_CTX* pctx2) { - return pctx1->num == pctx2->num - && pctx1->A == pctx2->A - && pctx1->B == pctx2->B - && pctx1->C == pctx2->C - && pctx1->D == pctx2->D - && pctx1->Nl == pctx2->Nl - && pctx1->Nh == pctx2->Nh - && memcmp(pctx1->data, pctx2->data, sizeof(pctx1->data)) == 0; -} diff --git a/ext/digest/md5/md5ossl.h b/ext/digest/md5/md5ossl.h index bccbe05f2a..1680c4f5c9 100644 --- a/ext/digest/md5/md5ossl.h +++ b/ext/digest/md5/md5ossl.h @@ -6,7 +6,8 @@ #include <stddef.h> #include <openssl/md5.h> +#define MD5_BLOCK_LENGTH MD5_CBLOCK + void MD5_Finish(MD5_CTX *pctx, unsigned char *digest); -int MD5_Equal(MD5_CTX *pctx1, MD5_CTX *pctx2); #endif |