Пример #1
0
        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]);
            }
        }
Пример #2
0
 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);
 }
Пример #3
0
        public void RegisterInternal(OrdinalPeerNodeId peerNodeId, byte[] nonceData)
        {
            NonceContainer n = new NonceContainer(nonceData);

            if (!_table.ContainsKey(peerNodeId))
            {
                _table.Add(peerNodeId, n);
            }
            else
            {
                _table[peerNodeId] = n;
            }
        }
Пример #4
0
 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
     });
 }