by
84k 18
0
5
1,247
0
Top 1% !
Popular
Famous
Tagged
Specified
Popularity: 27144th place

Published on:

Architecturex86_64
LanguageC#
Windows VersionWindows7

DecodeChecked: Uses the checksum in the last 4 bytes of the decoded data to verify the rest are correct. The checksum is          removed from the returned data.

Uses the checksum in the last 4 bytes of the decoded data to verify the rest are correct. The checksum is
removed from the returned data.

<exception cref="AddressFormatException">If the input is not base 58 or the checksum does not validate.</exception>
Copy Embed Code
<iframe id="embedFrame" style="width:600px; height:300px;"
src="https://www.snip2code.com/Embed/1373921/DecodeChecked--Uses-the-checksum-in-the-?startLine=0"></iframe>
Click on the embed code to copy it into your clipboard Width Height
Leave empty to retrieve all the content Start End
using System; using System.Linq; using System.Text; using CoiniumServ.Coin.Address.Exceptions; using CoiniumServ.Cryptology; using Org.BouncyCastle.Math; /// <summary> /// Uses the checksum in the last 4 bytes of the decoded data to verify the rest are correct. The checksum is /// removed from the returned data. /// </summary> /// <exception cref="AddressFormatException">If the input is not base 58 or the checksum does not validate.</exception> public static byte[] DecodeChecked(string input) { var tmp = Decode(input); if (tmp.Length < 4) throw new AddressFormatException("Input too short"); var checksum = new byte[4]; Array.Copy(tmp, tmp.Length - 4, checksum, 0, 4); var bytes = new byte[tmp.Length - 4]; Array.Copy(tmp, 0, bytes, 0, tmp.Length - 4); tmp = bytes.DoubleDigest(); var hash = new byte[4]; Array.Copy(tmp, 0, hash, 0, 4); if (!hash.SequenceEqual(checksum)) throw new AddressFormatException("Checksum does not validate"); return bytes; }
If you want to be updated about similar snippets, Sign in and follow our Channels

blog comments powered by Disqus