Class: OpenSSL::HMAC
- Inherits:
-
Object
- Object
- OpenSSL::HMAC
- Defined in:
- ossl_hmac.c
Class Method Summary collapse
Instance Method Summary collapse
- #digest ⇒ aString
- #hexdigest ⇒ aString (also: #inspect, #to_s)
- #new(key, digest) ⇒ Object constructor
- #reset ⇒ self
- #update(string) ⇒ self (also: #<<)
Constructor Details
#new(key, digest) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'ossl_hmac.c', line 66 static VALUE ossl_hmac_initialize(VALUE self, VALUE key, VALUE digest) { HMAC_CTX *ctx; StringValue(key); GetHMAC(self, ctx); HMAC_Init_ex(ctx, RSTRING_PTR(key), RSTRING_LEN(key), GetDigestPtr(digest), NULL); return self; } |
Class Method Details
.digest(digest, key, data) ⇒ aString
192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'ossl_hmac.c', line 192 static VALUE ossl_hmac_s_digest(VALUE klass, VALUE digest, VALUE key, VALUE data) { char *buf; int buf_len; StringValue(key); StringValue(data); buf = HMAC(GetDigestPtr(digest), RSTRING_PTR(key), RSTRING_LEN(key), RSTRING_PTR(data), RSTRING_LEN(data), NULL, &buf_len); return rb_str_new(buf, buf_len); } |
.digest(digest, key, data) ⇒ aString
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 |
# File 'ossl_hmac.c', line 211 static VALUE ossl_hmac_s_hexdigest(VALUE klass, VALUE digest, VALUE key, VALUE data) { char *buf, *hexbuf; int buf_len; VALUE hexdigest; StringValue(key); StringValue(data); buf = HMAC(GetDigestPtr(digest), RSTRING_PTR(key), RSTRING_LEN(key), RSTRING_PTR(data), RSTRING_LEN(data), NULL, &buf_len); if (string2hex(buf, buf_len, &hexbuf, NULL) != 2 * buf_len) { ossl_raise(eHMACError, "Cannot convert buf to hexbuf"); } hexdigest = ossl_buf2str(hexbuf, 2 * buf_len); return hexdigest; } |
Instance Method Details
#digest ⇒ aString
131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'ossl_hmac.c', line 131 static VALUE ossl_hmac_digest(VALUE self) { HMAC_CTX *ctx; char *buf; int buf_len; VALUE digest; GetHMAC(self, ctx); hmac_final(ctx, &buf, &buf_len); digest = ossl_buf2str(buf, buf_len); return digest; } |
#hexdigest ⇒ aString Also known as: inspect, to_s
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'ossl_hmac.c', line 151 static VALUE ossl_hmac_hexdigest(VALUE self) { HMAC_CTX *ctx; char *buf, *hexbuf; int buf_len; VALUE hexdigest; GetHMAC(self, ctx); hmac_final(ctx, &buf, &buf_len); if (string2hex(buf, buf_len, &hexbuf, NULL) != 2 * buf_len) { OPENSSL_free(buf); ossl_raise(eHMACError, "Memory alloc error"); } OPENSSL_free(buf); hexdigest = ossl_buf2str(hexbuf, 2 * buf_len); return hexdigest; } |
#reset ⇒ self
176 177 178 179 180 181 182 183 184 185 |
# File 'ossl_hmac.c', line 176 static VALUE ossl_hmac_reset(VALUE self) { HMAC_CTX *ctx; GetHMAC(self, ctx); HMAC_Init_ex(ctx, NULL, 0, NULL, NULL); return self; } |
#update(string) ⇒ self Also known as: <<
99 100 101 102 103 104 105 106 107 108 109 |
# File 'ossl_hmac.c', line 99 static VALUE ossl_hmac_update(VALUE self, VALUE data) { HMAC_CTX *ctx; StringValue(data); GetHMAC(self, ctx); HMAC_Update(ctx, RSTRING_PTR(data), RSTRING_LEN(data)); return self; } |