how to print ubyte*
Jonathan M Davis via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Apr 30 01:11:27 PDT 2014
On Wed, 30 Apr 2014 07:27:23 +0000
brad clawsie via Digitalmars-d-learn
<digitalmars-d-learn at 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
More information about the Digitalmars-d-learn
mailing list