X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=c_sharp%2Fsrc%2Forg%2Fldk%2Fstructs%2FSha256.cs;h=6c8a415b397c79303695f4d22aeea891c3d43467;hb=592c64eb658d92e314a2b983cea16cecf3882474;hp=5ec61e2f218090caa2806d4cd570d9430e4c3759;hpb=8aa8a96fc6d8fcdd3fbb419b4b4c12482af14938;p=ldk-java diff --git a/c_sharp/src/org/ldk/structs/Sha256.cs b/c_sharp/src/org/ldk/structs/Sha256.cs index 5ec61e2f..6c8a415b 100644 --- a/c_sharp/src/org/ldk/structs/Sha256.cs +++ b/c_sharp/src/org/ldk/structs/Sha256.cs @@ -34,7 +34,7 @@ public class Sha256 : CommonBase { } /** - * Checks if two Sha256s contain equal inner contents. + * Generates a non-cryptographic 64-bit hash of the Sha256. */ public long hash() { long ret = bindings.Sha256_hash(this.ptr); @@ -51,7 +51,7 @@ public class Sha256 : CommonBase { * Two objects with NULL inner values will be considered "equal" here. */ public bool eq(org.ldk.structs.Sha256 b) { - bool ret = bindings.Sha256_eq(this.ptr, b == null ? 0 : b.ptr); + bool ret = bindings.Sha256_eq(this.ptr, b.ptr); GC.KeepAlive(this); GC.KeepAlive(b); if (this != null) { this.ptrs_to.AddLast(b); }; @@ -62,5 +62,18 @@ public class Sha256 : CommonBase { if (!(o is Sha256)) return false; return this.eq((Sha256)o); } + /** + * Constructs a new [`Sha256`] from the given bytes, which are assumed to be the output of a + * single sha256 hash. + */ + public static Sha256 from_bytes(byte[] bytes) { + long ret = bindings.Sha256_from_bytes(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(bytes, 32))); + GC.KeepAlive(bytes); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Sha256 ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Sha256(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + } } } }