aboutsummaryrefslogtreecommitdiffstats
path: root/ossl_digest.c
diff options
context:
space:
mode:
Diffstat (limited to 'ossl_digest.c')
-rw-r--r--ossl_digest.c82
1 files changed, 48 insertions, 34 deletions
diff --git a/ossl_digest.c b/ossl_digest.c
index 0f5cc23..db51a8f 100644
--- a/ossl_digest.c
+++ b/ossl_digest.c
@@ -13,10 +13,7 @@
#define MakeDigest(klass, obj, digestp) {\
obj = Data_Make_Struct(klass, ossl_digest, 0, ossl_digest_free, digestp);\
}
-
-#define GetDigest(obj, digestp) {\
- Data_Get_Struct(obj, ossl_digest, digestp);\
-}
+#define GetDigest(obj, digestp) Data_Get_Struct(obj, ossl_digest, digestp)
/*
* Classes
@@ -39,10 +36,11 @@ typedef struct ossl_digest_st {
EVP_MD_CTX *md;
} ossl_digest;
-static void ossl_digest_free(ossl_digest *digestp)
+static void
+ossl_digest_free(ossl_digest *digestp)
{
if (digestp) {
- if (digestp->md) free(digestp->md);
+ if (digestp->md) OPENSSL_free(digestp->md);
free(digestp);
}
}
@@ -50,7 +48,8 @@ static void ossl_digest_free(ossl_digest *digestp)
/*
* PUBLIC
*/
-int ossl_digest_get_NID(VALUE obj)
+int
+ossl_digest_get_NID(VALUE obj)
{
ossl_digest *digestp = NULL;
@@ -59,7 +58,8 @@ int ossl_digest_get_NID(VALUE obj)
return EVP_MD_CTX_type(digestp->md); /*== digestp->md->digest->type*/
}
-const EVP_MD *ossl_digest_get_EVP_MD(VALUE obj)
+const EVP_MD *
+ossl_digest_get_EVP_MD(VALUE obj)
{
ossl_digest *digestp = NULL;
@@ -71,13 +71,14 @@ const EVP_MD *ossl_digest_get_EVP_MD(VALUE obj)
/*
* PRIVATE
*/
-static VALUE ossl_digest_s_new(int argc, VALUE *argv, VALUE klass)
+static VALUE
+ossl_digest_s_new(int argc, VALUE *argv, VALUE klass)
{
ossl_digest *digestp = NULL;
VALUE obj;
if (klass == cDigest)
- rb_raise(rb_eNotImpError, "cannot do Digest.new - Digest is an abstract class");
+ rb_raise(rb_eNotImpError, "cannot do Digest::ANY.new - it is an abstract class");
MakeDigest(klass, obj, digestp);
rb_obj_call_init(obj, argc, argv);
@@ -85,7 +86,8 @@ static VALUE ossl_digest_s_new(int argc, VALUE *argv, VALUE klass)
return obj;
}
-static VALUE ossl_digest_update(VALUE self, VALUE data)
+static VALUE
+ossl_digest_update(VALUE self, VALUE data)
{
ossl_digest *digestp = NULL;
@@ -97,7 +99,8 @@ static VALUE ossl_digest_update(VALUE self, VALUE data)
return self;
}
-static VALUE ossl_digest_digest(VALUE self)
+static VALUE
+ossl_digest_digest(VALUE self)
{
ossl_digest *digestp = NULL;
char *digest_txt = NULL;
@@ -111,7 +114,7 @@ static VALUE ossl_digest_digest(VALUE self)
rb_raise(eDigestError, "%s", ossl_error());
}
- if (!(digest_txt = malloc(EVP_MD_CTX_size(digestp->md)))) {
+ if (!(digest_txt = malloc(EVP_MD_CTX_size(&final)))) {
rb_raise(eDigestError, "Cannot allocate memory for digest");
}
EVP_DigestFinal(&final, digest_txt, &digest_len);
@@ -125,7 +128,8 @@ static VALUE ossl_digest_digest(VALUE self)
/*
* RUBY attitude
*/
-static VALUE ossl_digest_hexdigest(VALUE self)
+static VALUE
+ossl_digest_hexdigest(VALUE self)
{
ossl_digest *digestp = NULL;
static const char hex[]="0123456789abcdef";
@@ -140,7 +144,7 @@ static VALUE ossl_digest_hexdigest(VALUE self)
rb_raise(eDigestError, "%s", ossl_error());
}
- if (!(digest_txt = malloc(EVP_MD_CTX_size(digestp->md)))) {
+ if (!(digest_txt = malloc(EVP_MD_CTX_size(&final)))) {
rb_raise(eDigestError, "Cannot allocate memory for digest");
}
EVP_DigestFinal(&final, digest_txt, &digest_len);
@@ -163,7 +167,8 @@ static VALUE ossl_digest_hexdigest(VALUE self)
/*
* OPENSSL attitude
*
-static VALUE ossl_digest_hexdigest(VALUE self)
+static VALUE
+ossl_digest_hexdigest(VALUE self)
{
ossl_digest *digestp = NULL;
unsigned char *digest_txt = NULL, *hexdigest_txt = NULL;
@@ -177,7 +182,7 @@ static VALUE ossl_digest_hexdigest(VALUE self)
rb_raise(eDigestError, "%s", ossl_error());
}
- if (!(digest_txt = malloc(EVP_MD_CTX_size(digestp->md)))) {
+ if (!(digest_txt = malloc(EVP_MD_CTX_size(&final)))) {
rb_raise(eDigestError, "Cannot allocate memory for digest");
}
EVP_DigestFinal(&final, digest_txt, &digest_len);
@@ -194,13 +199,14 @@ static VALUE ossl_digest_hexdigest(VALUE self)
/*
* MD2
*/
-static VALUE ossl_md2_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_md2_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_md2());
@@ -215,13 +221,14 @@ static VALUE ossl_md2_initialize(int argc, VALUE *argv, VALUE self)
/*
* MD5
*/
-static VALUE ossl_md5_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_md5_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_md5());
@@ -236,13 +243,14 @@ static VALUE ossl_md5_initialize(int argc, VALUE *argv, VALUE self)
/*
* MDC2
*/
-static VALUE ossl_mdc2_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_mdc2_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_mdc2());
@@ -257,13 +265,14 @@ static VALUE ossl_mdc2_initialize(int argc, VALUE *argv, VALUE self)
/*
* RIPEmd160
*/
-static VALUE ossl_ripemd160_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_ripemd160_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_ripemd160());
@@ -278,13 +287,14 @@ static VALUE ossl_ripemd160_initialize(int argc, VALUE *argv, VALUE self)
/*
* SHA
*/
-static VALUE ossl_sha_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_sha_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_sha());
@@ -299,13 +309,14 @@ static VALUE ossl_sha_initialize(int argc, VALUE *argv, VALUE self)
/*
* SHA1
*/
-static VALUE ossl_sha1_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_sha1_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_sha1());
@@ -317,13 +328,14 @@ static VALUE ossl_sha1_initialize(int argc, VALUE *argv, VALUE self)
return self;
}
-static VALUE ossl_dss_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_dss_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_dss());
@@ -335,13 +347,14 @@ static VALUE ossl_dss_initialize(int argc, VALUE *argv, VALUE self)
return self;
}
-static VALUE ossl_dss1_initialize(int argc, VALUE *argv, VALUE self)
+static VALUE
+ossl_dss1_initialize(int argc, VALUE *argv, VALUE self)
{
ossl_digest *digestp = NULL;
VALUE data;
GetDigest(self, digestp);
- if (!(digestp->md = malloc(sizeof(EVP_MD_CTX)))) {
+ if (!(digestp->md = OPENSSL_malloc(sizeof(EVP_MD_CTX)))) {
rb_raise(eDigestError, "Cannot allocate memory for new digest");
}
EVP_DigestInit(digestp->md, EVP_dss1());
@@ -356,7 +369,8 @@ static VALUE ossl_dss1_initialize(int argc, VALUE *argv, VALUE self)
/*
* INIT
*/
-void Init_ossl_digest(VALUE mDigest)
+void
+Init_ossl_digest(VALUE mDigest)
{
eDigestError = rb_define_class_under(mDigest, "Error", rb_eStandardError);