public override IDictionary GetClientExtensions()
    {
        IDictionary dictionary = TlsExtensionsUtilities.EnsureExtensionsInitialised(base.GetClientExtensions());

        TlsSrpUtilities.AddSrpExtension(dictionary, mIdentity);
        return(dictionary);
    }
    public override void GenerateClientKeyExchange(Stream output)
    {
        BigInteger x = mSrpClient.GenerateClientCredentials(mSrpSalt, mIdentity, mPassword);

        TlsSrpUtilities.WriteSrpParameter(x, output);
        mContext.SecurityParameters.srpIdentity = Arrays.Clone(mIdentity);
    }
示例#3
0
 public virtual void Encode(Stream output)
 {
     TlsSrpUtilities.WriteSrpParameter(m_N, output);
     TlsSrpUtilities.WriteSrpParameter(m_g, output);
     TlsUtilities.WriteOpaque8(m_s, output);
     TlsSrpUtilities.WriteSrpParameter(m_B, output);
 }
示例#4
0
    public static ServerSrpParams Parse(Stream input)
    {
        BigInteger n = TlsSrpUtilities.ReadSrpParameter(input);
        BigInteger g = TlsSrpUtilities.ReadSrpParameter(input);

        byte[]     s = TlsUtilities.ReadOpaque8(input);
        BigInteger b = TlsSrpUtilities.ReadSrpParameter(input);

        return(new ServerSrpParams(n, g, s, b));
    }
 public override void ProcessClientKeyExchange(Stream input)
 {
     try
     {
         mSrpPeerCredentials = Srp6Utilities.ValidatePublicValue(mSrpGroup.N, TlsSrpUtilities.ReadSrpParameter(input));
     }
     catch (CryptoException alertCause)
     {
         throw new TlsFatalAlert(47, alertCause);
     }
     mContext.SecurityParameters.srpIdentity = Arrays.Clone(mIdentity);
 }
    public override int GetSelectedCipherSuite()
    {
        int selectedCipherSuite = base.GetSelectedCipherSuite();

        if (TlsSrpUtilities.IsSrpCipherSuite(selectedCipherSuite))
        {
            if (mSrpIdentity != null)
            {
                mLoginParameters = mSrpIdentityManager.GetLoginParameters(mSrpIdentity);
            }
            if (mLoginParameters == null)
            {
                throw new TlsFatalAlert(115);
            }
        }
        return(selectedCipherSuite);
    }
 public override void ProcessClientExtensions(IDictionary clientExtensions)
 {
     base.ProcessClientExtensions(clientExtensions);
     mSrpIdentity = TlsSrpUtilities.GetSrpExtension(clientExtensions);
 }