public NonceContainer this[OrdinalPeerNodeId peerNodeId] { get { if (!_table.ContainsKey(peerNodeId)) { throw new IndexOutOfRangeException("nonce container for such peer id doesn't exist"); } return(_table[peerNodeId]); } }
public byte[] Find(OrdinalPeerNodeId peerNodeId, byte nonceId) { byte[] ret = null; if (_table.ContainsKey(peerNodeId) && _table[peerNodeId].NonceId == nonceId) { ret = _table[peerNodeId].Nonce; } else { "=none"._DLOG(); } return(ret); }
public void RegisterInternal(OrdinalPeerNodeId peerNodeId, byte[] nonceData) { NonceContainer n = new NonceContainer(nonceData); if (!_table.ContainsKey(peerNodeId)) { _table.Add(peerNodeId, n); } else { _table[peerNodeId] = n; } }
public byte[] GenerateNonceReport(OrdinalPeerNodeId peerNodeId) { byte[] internalNonce = null; while (internalNonce == null) { internalNonce = PRNG.PRNGOutput(new byte[8]); NonceS0Storage.RegisterInternal(peerNodeId, internalNonce); } internalNonce = GetInternalNonceArray(peerNodeId.NodeId2, peerNodeId.NodeId1); "new internal NONCE {0}"._DLOG(internalNonce.GetHex()); return(new COMMAND_CLASS_SECURITY.SECURITY_NONCE_REPORT() { nonceByte = internalNonce }); }