On Wed, 30 Apr 2014 07:27:23 +0000 brad clawsie via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> hi, I'm back again with another openssl related question. > > given this program > > -------------- > > import std.stdio; > import deimos.openssl.hmac; > import deimos.openssl.evp; > > void main() { > HMAC_CTX *ctx = new HMAC_CTX; > HMAC_CTX_init(ctx); > auto key = "123456"; > auto s = "hello"; > > auto digest = HMAC(EVP_sha1(), > cast(void *) key, > cast(int) key.length, > cast(ubyte*) s, > cast(int) s.length, > null,null); > } > > -------------- > > "digest" should be of type ubyte* > > does anyone know how to print this out as ascii? If you want to print a ubyte*, then you can do something like auto str = cast(char[])digest[0 .. lengthOfDigest]; writeln(str); Slicing the pointer results in an array, and you can cast ubyte[] to char[], which will print as characters rather than their integral values. - Jonathan M Davis