private async Task ProcessInfoRequestResponse(string encryptedToken)
        {
            InfoRequestResponse infoRequestResponse = await DecryptAndInstantiateHandshakeToken <InfoRequestResponse>(encryptedToken, Ack.Id);

            VerifyHandshakeTokenIDOwnership(infoRequestResponse);

            ReceivedIDEvent e;

            if (_tokenCryptoService.VerifySignature(infoRequestResponse))
            {
                e = new ReceivedIDEvent()
                {
                    ReceivedID = infoRequestResponse.Id,
                };

                _session.Close();
                HandshakeComplete.Invoke(this, e);
            }
            else
            {
                throw new SignatureDoesntMatchException("The signature was not " +
                                                        "generated by the given " +
                                                        "public Key");
            }
        }
        public void Handshake(NodeId handshakeRemoteNodeId)
        {
            HandshakeComplete?.Invoke(this, EventArgs.Empty);
            var task = Task.Delay(1000);

            task.Wait();
        }
        public void TriggerHandshakeComplete()
        {
            HandshakeComplete?.Invoke(this, EventArgs.Empty);
            var task = Task.Delay(1000);

            task.Wait();
        }
Exemple #4
0
 public DtlsTransport Accept()
 {
     try
     {
         DtlsTransport dtlsTransport = dtlsServerProtocol.Accept(tlsServer, DatagramTransport);
         HandshakeComplete?.Invoke(this, new HandshakeCompleteEventArgs(tlsServer.ChosenSrtpProtectionProfile, TlsRole.Server, tlsServer.SrtpKeyingMaterial));
         return(dtlsTransport);
     }
     catch (System.Exception e)
     {
         throw e;
     }
 }
Exemple #5
0
 DtlsTransport Connect()
 {
     try
     {
         DtlsTransport dtlsTransport = dtlsClientProtocol.Connect(tlsClient, datagramTransport);
         HandshakeComplete?.Invoke(this, new HandshakeCompleteEventArgs(tlsClient.ChosenSrtpProtectionProfile, TlsRole.Client, tlsClient.SrtpKeyingMaterial));
         return(dtlsTransport);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Exemple #6
0
        private async Task AddCertificatesToTheAccessibleAttributes(Certificate[] certificates)
        {
            List <Certificate> addedCertificate = new List <Certificate>();

            foreach (Attribute attr in _accessibleAttributes)
            {
                foreach (Certificate cert in certificates)
                {
                    if (attr.Address != cert.OwningAttribute.Address)
                    {
                        continue;
                    }

                    cert.OwningAttribute = attr;

                    //overwrite the old certificate
                    if (attr.Certificates.ContainsKey(cert.Owner))
                    {
                        attr.Certificates.Remove(cert.Owner);
                    }

                    attr.AddCertificate(cert);

                    await _attributeFacade.AddCertificateAsync(attr, cert);

                    addedCertificate.Add(cert);
                }
            }
            _session.Close();
            IssuedCertificatesAddedToIDEvent e = new IssuedCertificatesAddedToIDEvent()
            {
                CertificatesAdded = addedCertificate,
            };

            HandshakeComplete.Invoke(this, e);
        }
Exemple #7
0
 public void TriggerHandshakeComplete()
 {
     HandshakeComplete?.Invoke(this, EventArgs.Empty);
 }
Exemple #8
0
 private void OnHandshake()
 {
     HandshakeComplete?.Invoke(this);
 }