public TlsPskKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsPskIdentity pskIdentity,
                                 TlsPskIdentityManager pskIdentityManager, TlsDHVerifier dhVerifier, DHParameters dhParameters, int[] namedCurves,
                                 byte[] clientECPointFormats, byte[] serverECPointFormats)
            :   base(keyExchange, supportedSignatureAlgorithms)
        {
            switch (keyExchange)
            {
            case KeyExchangeAlgorithm.DHE_PSK:
            case KeyExchangeAlgorithm.ECDHE_PSK:
            case KeyExchangeAlgorithm.PSK:
            case KeyExchangeAlgorithm.RSA_PSK:
                break;

            default:
                throw new InvalidOperationException("unsupported key exchange algorithm");
            }

            this.mPskIdentity          = pskIdentity;
            this.mPskIdentityManager   = pskIdentityManager;
            this.mDHVerifier           = dhVerifier;
            this.mDHParameters         = dhParameters;
            this.mNamedCurves          = namedCurves;
            this.mClientECPointFormats = clientECPointFormats;
            this.mServerECPointFormats = serverECPointFormats;
        }
Beispiel #2
0
        public TlsDHKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsDHVerifier dhVerifier, DHParameters dhParameters)
            :   base(keyExchange, supportedSignatureAlgorithms)
        {
            switch (keyExchange)
            {
            case KeyExchangeAlgorithm.DH_anon:
            case KeyExchangeAlgorithm.DH_RSA:
            case KeyExchangeAlgorithm.DH_DSS:
                this.mTlsSigner = null;
                break;

            case KeyExchangeAlgorithm.DHE_RSA:
                this.mTlsSigner = new TlsRsaSigner();
                break;

            case KeyExchangeAlgorithm.DHE_DSS:
                this.mTlsSigner = new TlsDssSigner();
                break;

            default:
                throw new InvalidOperationException("unsupported key exchange algorithm");
            }

            this.mDHVerifier   = dhVerifier;
            this.mDHParameters = dhParameters;
        }
        public static DHParameters ReceiveDHParameters(TlsDHVerifier dhVerifier, Stream input)
        {
            DHParameters dhParameters = ReadDHParameters(input);

            if (!dhVerifier.Accept(dhParameters))
            {
                throw new TlsFatalAlert(AlertDescription.insufficient_security);
            }

            return(dhParameters);
        }
Beispiel #4
0
 public PskTlsClient(TlsCipherFactory cipherFactory, TlsDHVerifier dhVerifier, TlsPskIdentity pskIdentity)
     : base(cipherFactory)
 {
     this.mDHVerifier  = dhVerifier;
     this.mPskIdentity = pskIdentity;
 }
Beispiel #5
0
 public DefaultTlsClient(TlsCipherFactory cipherFactory, TlsDHVerifier dhVerifier)
     : base(cipherFactory)
 {
     this.mDHVerifier = dhVerifier;
 }
 public TlsDheKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsDHVerifier dhVerifier, DHParameters dhParameters)
     :   base(keyExchange, supportedSignatureAlgorithms, dhVerifier, dhParameters)
 {
 }
Beispiel #7
0
 public ExamplePskDtlsClient(TlsCipherFactory cipherFactory, TlsDHVerifier dhVerifier, TlsPskIdentity pskIdentity)
     : base(cipherFactory, dhVerifier, pskIdentity)
 {
 }