public static void RunBatchDeleteTest(IBatchingDatastore <byte[]> ds) { var keys = new List <DatastoreKey>(); for (var i = 0; i < 20; i++) { var blk = new byte[16]; TestContext.CurrentContext.Random.NextBytes(blk); var key = new DatastoreKey(Multibase.EncodeRaw(Multibase.Base32, blk.Take(8).ToArray())); keys.Add(key); ds.Put(key, blk); } var batch = ds.Batch(); foreach (var key in keys) { batch.Delete(key); } batch.Commit(); foreach (var key in keys) { Assert.Throws <KeyNotFoundException>(() => ds.Get(key)); } }
public static void RunBatchTest(IBatchingDatastore <byte[]> ds) { var batch = ds.Batch(); var blocks = new List <byte[]>(); var keys = new List <DatastoreKey>(); for (var i = 0; i < 20; i++) { var blk = new byte[256 * 1024]; TestContext.CurrentContext.Random.NextBytes(blk); blocks.Add(blk); var key = new DatastoreKey(Multibase.EncodeRaw(Multibase.Base32, blk.Take(8).ToArray())); keys.Add(key); batch.Put(key, blk); } foreach (var key in keys) { Assert.Throws <KeyNotFoundException>(() => ds.Get(key)); } batch.Commit(); for (var i = 0; i < keys.Count; i++) { var blk = ds.Get(keys[i]); Assert.That(blk, Is.EqualTo(blocks[i])); } }
public void TestRoundTrip(MultibaseEncoding encoding) { var rand = new Random(Environment.TickCount); var buf = new byte[rand.Next(16, 256)]; rand.NextBytes(buf); var encoded = Multibase.EncodeRaw(encoding, buf); var decoded = Multibase.DecodeRaw(encoding, encoded); Assert.Equal(decoded, buf); }
public byte[] RawData() { using (var stream = new MemoryStream()) { stream.Write($"tag {dataSize}\x00"); stream.Write($"object {Multibase.EncodeRaw(Multibase.Base16, Object.ToSha())}\n"); stream.Write($"type {Type}\n"); stream.Write($"tag {Name}\n"); if (Tagger != null) { stream.Write($"tagger {Tagger}\n"); } if (!string.IsNullOrEmpty(Message)) { stream.Write($"\n{Message}"); } return(stream.ToArray()); } }
private static void Process(Options options) { using (options.Source) { byte[] data = null; using (var mem = new MemoryStream()) { options.Source.CopyTo(mem); data = mem.ToArray(); } var mh = Multihash.Sum(options.Algorithm, data, options.Length); if (string.IsNullOrEmpty(options.Checksum)) { Console.WriteLine(mh.ToString(options.Encoding)); Environment.Exit(0); } var checksum = Multibase.DecodeRaw(options.Encoding, options.Checksum); if (!checksum.SequenceEqual(mh.Digest)) { if (!options.Quiet) { Console.WriteLine($"Digest mismatch, got: {Multibase.EncodeRaw(options.Encoding, mh.Digest)}, wanted: {Multibase.EncodeRaw(options.Encoding, checksum)}"); } Environment.Exit(1); } if (!options.Quiet) { Console.WriteLine("Checksum match"); } } }
public string ToString(MultibaseEncoding encoding) => Multibase.EncodeRaw(encoding, _bytes.Value);
public static string ToHex(this byte[] bytes) => Multibase.EncodeRaw(Multibase.Base16, bytes);