1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
include Digest
@BEGIN_BEFORE_4_03_0@
let equal : t -> t -> bool = ( = )
@END_BEFORE_4_03_0@
@BEGIN_BEFORE_4_02_0@
let bytes = string
let subbytes = substring
let compare = compare
@END_BEFORE_4_02_0@
@BEGIN_BEFORE_4_00_0@
let from_hex s =
if String.length s <> 32 then invalid_arg "Digest.from_hex";
let digit c =
match c with
| '0'..'9' -> Char.code c - Char.code '0'
| 'A'..'F' -> Char.code c - Char.code 'A' + 10
| 'a'..'f' -> Char.code c - Char.code 'a' + 10
| _ -> raise (Invalid_argument "Digest.from_hex")
in
let byte i = digit s.[i] lsl 4 + digit s.[i+1] in
let result = String.create 16 in
for i = 0 to 15 do
String.set result i (Char.chr (byte (2 * i)));
done;
result
@END_BEFORE_4_00_0@
|