From d22373455532e99c0adf1a1e5d0b3a864691e2f9 Mon Sep 17 00:00:00 2001 From: knu Date: Tue, 23 Feb 2010 17:33:39 +0000 Subject: Back out the series of changes pending a due discussion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/openssl/ossl_digest.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'ext/openssl/ossl_digest.c') diff --git a/ext/openssl/ossl_digest.c b/ext/openssl/ossl_digest.c index 30478911ba..9b8ced5233 100644 --- a/ext/openssl/ossl_digest.c +++ b/ext/openssl/ossl_digest.c @@ -37,25 +37,18 @@ GetDigestPtr(VALUE obj) { const EVP_MD *md; - if (TYPE(obj) == T_CLASS) { - EVP_MD_CTX *ctx; - VALUE digest = rb_funcall(obj, rb_intern("new"), 0, 0); - - SafeGetDigest(digest, ctx); + if (TYPE(obj) == T_STRING) { + const char *name = StringValueCStr(obj); - md = EVP_MD_CTX_md(ctx); - } else if (rb_obj_is_kind_of(obj, cDigest)) { + md = EVP_get_digestbyname(name); + if (!md) + ossl_raise(rb_eRuntimeError, "Unsupported digest algorithm (%s).", name); + } else { EVP_MD_CTX *ctx; SafeGetDigest(obj, ctx); md = EVP_MD_CTX_md(ctx); - } else { - const char *name = StringValueCStr(obj); - - md = EVP_get_digestbyname(name); - if (!md) - ossl_raise(rb_eRuntimeError, "Unsupported digest algorithm (%s).", name); } return md; -- cgit v1.2.3