diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-15 01:54:40 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-15 01:54:40 +0000 |
| commit | 1c474bb43e7bef7af8d0b3857d2bbbafa53d87f7 (patch) | |
| tree | 65e5b11627653d6cc3c5fe49f62b5b1c6899fdd5 /ext/openssl/ossl_digest.c | |
| parent | 6add16fdf5dfbca9c2692e0f05e17b35aa497f05 (diff) | |
* ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]
* lib/cgi/session.rb (CGI::Session::initialize): generate new
session if given session_id does not exist. [ruby-list:40368]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/openssl/ossl_digest.c')
| -rw-r--r-- | ext/openssl/ossl_digest.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/ext/openssl/ossl_digest.c b/ext/openssl/ossl_digest.c index 8ad9f01dc..d22f02244 100644 --- a/ext/openssl/ossl_digest.c +++ b/ext/openssl/ossl_digest.c @@ -85,16 +85,16 @@ ossl_digest_initialize(int argc, VALUE *argv, VALUE self) char *name; VALUE type, data; - GetDigest(self, ctx); - rb_scan_args(argc, argv, "11", &type, &data); - name = StringValuePtr(type); + StringValue(type); if (!NIL_P(data)) StringValue(data); + name = StringValuePtr(type); md = EVP_get_digestbyname(name); if (!md) { ossl_raise(rb_eRuntimeError, "Unsupported digest algorithm (%s).", name); } + GetDigest(self, ctx); EVP_DigestInit_ex(ctx, md, NULL); if (!NIL_P(data)) return ossl_digest_update(self, data); @@ -134,8 +134,8 @@ ossl_digest_update(VALUE self, VALUE data) { EVP_MD_CTX *ctx; - GetDigest(self, ctx); StringValue(data); + GetDigest(self, ctx); EVP_DigestUpdate(ctx, RSTRING(data)->ptr, RSTRING(data)->len); return self; @@ -218,13 +218,13 @@ ossl_digest_equal(VALUE self, VALUE other) EVP_MD_CTX *ctx; VALUE str1, str2; - GetDigest(self, ctx); if (rb_obj_is_kind_of(other, cDigest) == Qtrue) { str2 = ossl_digest_digest(other); } else { StringValue(other); str2 = other; } + GetDigest(self, ctx); if (RSTRING(str2)->len == EVP_MD_CTX_size(ctx)) { str1 = ossl_digest_digest(self); } else { |
