/// <summary> /// Initializes a new instance of the <see cref="CurlMamParser"/> class. /// </summary> /// <param name="mask"> /// The mask. /// </param> /// <param name="treeFactory"> /// The tree Factory. /// </param> /// <param name="curl"> /// The curl. /// </param> /// <param name="signingHelper"> /// The signature Validator. /// </param> public CurlMamParser(IMask mask, IMerkleTreeFactory treeFactory, AbstractCurl curl, ISigningHelper signingHelper) { this.TreeFactory = treeFactory; this.SigningHelper = signingHelper; this.Mask = mask; this.Curl = curl; }
/// <summary> /// Initializes a new instance of the <see cref="CurlMamFactory"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> /// <param name="mask"> /// The mask. /// </param> /// <param name="signingHelper"> /// The signing helper. /// </param> /// <param name="hammingNonceDiver"> /// The hamming nonce diver. /// </param> public CurlMamFactory(AbstractCurl curl, IMask mask, ISigningHelper signingHelper, AbstractPearlDiver hammingNonceDiver) { this.SigningHelper = signingHelper; this.HammingNonceDiver = hammingNonceDiver; this.Mask = mask; this.Curl = curl; }
/// <inheritdoc /> public int[] Unmask(int[] payload, AbstractCurl curl) { var unmasked = new List <int>(); foreach (var chunk in payload.GetChunks(Constants.TritHashLength)) { for (var i = 0; i < chunk.Length; i++) { chunk[i] = Converter.Sum(chunk[i], -curl.Rate(Constants.TritHashLength)[i]); } unmasked.AddRange(chunk); curl.Absorb(chunk); } return(unmasked.ToArray()); }
/// <inheritdoc /> public void Mask(int[] payload, AbstractCurl curl) { var keyChunk = curl.Rate(Constants.TritHashLength); var round = 0; foreach (var chunk in payload.GetChunks(Constants.TritHashLength)) { curl.Absorb(chunk); var curlState = curl.Rate(Constants.TritHashLength); var length = chunk.Length; for (var i = 0; i < length; i++) { payload[round * Constants.TritHashLength + i] = Converter.Sum(chunk[i], keyChunk[i]); keyChunk[i] = curlState[i]; } round++; } }
/// <summary> /// Initializes a new instance of the <see cref="SignatureFragmentGenerator"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> public SignatureFragmentGenerator(AbstractCurl curl) { this.Curl = curl; }
/// <summary> /// Initializes a new instance of the <see cref="AddressGenerator"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> /// <param name="keyGenerator"> /// The key Generator. /// </param> public AddressGenerator(AbstractCurl curl, IKeyGenerator keyGenerator) { this.Curl = curl; this.KeyGenerator = keyGenerator; }
/// <summary> /// Initializes a new instance of the <see cref="CurlMerkleTreeFactory"/> class. /// </summary> /// <param name="nodeFactory"> /// The node factory. /// </param> /// <param name="leafFactory"> /// The leaf Factory. /// </param> /// <param name="curl"> /// The curl. /// </param> public CurlMerkleTreeFactory(IMerkleNodeFactory nodeFactory, IMerkleLeafFactory leafFactory, AbstractCurl curl) { this.NodeFactory = nodeFactory; this.LeafFactory = leafFactory; this.Curl = curl; }
/// <summary> /// Initializes a new instance of the <see cref="KeyGenerator"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> /// <param name="signingHelper"> /// The signing Helper. /// </param> public KeyGenerator(AbstractCurl curl, ISigningHelper signingHelper) { this.Curl = curl; this.SigningHelper = signingHelper; }
/// <summary> /// Initializes a new instance of the <see cref="CurlMask"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> public CurlMask(AbstractCurl curl) { this.Curl = curl; }
/// <summary> /// Initializes a new instance of the <see cref="IssSigningHelper"/> class. /// </summary> /// <param name="curlOne"> /// The curlOne. /// </param> /// <param name="curlTwo"> /// The curl Two. /// </param> /// <param name="curlThree"> /// The curl Three. /// </param> public IssSigningHelper(AbstractCurl curlOne, AbstractCurl curlTwo, AbstractCurl curlThree) { this.CurlOne = curlOne; this.CurlTwo = curlTwo; this.CurlThree = curlThree; }
/// <summary> /// Initializes a new instance of the <see cref="SignatureValidator"/> class. /// </summary> /// <param name="innerCurl"> /// The inner curl. /// </param> /// <param name="outerCurl"> /// The outer curl. /// </param> /// <param name="curl"> /// The curl. /// </param> public SignatureValidator(AbstractCurl innerCurl, AbstractCurl outerCurl, AbstractCurl curl) { this.InnerCurl = innerCurl; this.OuterCurl = outerCurl; this.Curl = curl; }
/// <summary> /// Initializes a new instance of the <see cref="CurlMerkleNodeFactory"/> class. /// </summary> /// <param name="curl"> /// The curl. /// </param> public CurlMerkleNodeFactory(AbstractCurl curl) { this.Curl = curl; }
/// <inheritdoc /> public PrivateKey(string privateKey, int securityLevel, int keyIndex, ISignatureFragmentGenerator signatureFragmentGenerator, AbstractCurl curl) : base(privateKey, securityLevel, keyIndex) { this.SignatureFragmentGenerator = signatureFragmentGenerator; this.Curl = curl; }