Digest.hx 1.4 KB

123456789101112131415161718192021222324252627
  1. package sys.ssl;
  2. import sys.ssl.Lib;
  3. @:coreApi
  4. class Digest {
  5. public static function make( data : haxe.io.Bytes, alg : DigestAlgorithm ) : haxe.io.Bytes {
  6. var size = 0;
  7. var b = @:privateAccess dgst_make( data.b, data.length, (alg:String).toUtf8(), size );
  8. return @:privateAccess new haxe.io.Bytes(b,size);
  9. }
  10. public static function sign( data : haxe.io.Bytes, privKey : Key, alg : DigestAlgorithm ) : haxe.io.Bytes {
  11. var size = 0;
  12. var b = @:privateAccess dgst_sign( data.b, data.length, privKey.__k, (alg:String).toUtf8(), size );
  13. return @:privateAccess new haxe.io.Bytes(b,size);
  14. }
  15. public static function verify( data : haxe.io.Bytes, signature : haxe.io.Bytes, pubKey : Key, alg : DigestAlgorithm ) : Bool{
  16. return @:privateAccess dgst_verify( data.b, data.length, signature.b, signature.length, pubKey.__k, (alg:String).toUtf8() );
  17. }
  18. @:hlNative("ssl","dgst_make") static function dgst_make( data : hl.Bytes, len : Int, alg : hl.Bytes, size : hl.Ref<Int> ) : hl.Bytes { return null; }
  19. @:hlNative("ssl","dgst_sign") static function dgst_sign( data : hl.Bytes, len : Int, key : sys.ssl.Key.KeyPtr, alg : hl.Bytes, size : hl.Ref<Int> ) : hl.Bytes { return null; }
  20. @:hlNative("ssl","dgst_verify") static function dgst_verify( data : hl.Bytes, dlen : Int, sign : hl.Bytes, slen : Int, key : sys.ssl.Key.KeyPtr, alg : hl.Bytes ) : Bool { return false; }
  21. }