ref: 905f4d10a78e7e2f6eb849cf373b14cd78c87d73
dir: /lib/crypto/clear.myr/
use std
pkg crypto =
/* designed to facilitating freeing sensitive data */
generic clear : (p : @a# -> void)
generic slclear : (sl : @a[:] -> void)
generic free : (p : @a# -> void)
generic slfree : (sl : @a[:] -> void)
;;
generic clear = {p : @a#
std.memfill((p : byte#), 0, sizeof(@a))
}
generic slclear = {sl : @a[:]
std.memfill((sl : byte#), 0, sizeof(@a)*sl.len)
}
generic free = {p : @a#
clear(p)
std.free(p)
}
generic slfree = {sl : @a[:]
slclear(sl)
std.slfree(sl)
}