Beispiel #1
0
 public void Init(string label, Authenticator.SecretKeyLength keyLength)
 {
     _initialized         = true;
     _googleAuthenticator = new GoogleAuthenticator(label, Authenticator.GenerateKey(keyLength));
     txtOTPSecret.Text    = _googleAuthenticator.Secret;
     GenerateQRCode();
 }
Beispiel #2
0
        /// <summary>
        ///     Create a new instance of otpSettings
        /// </summary>
        /// <param name="password"></param>
        /// <returns>Password hash</returns>
        public string Create(string password, Authenticator.SecretKeyLength keyLength)
        {
            using (var randomNumberGenerator = RandomNumberGenerator.Create())
            {
                byte[] salt1Bytes    = new byte[SaltByteLength];
                byte[] salt2Bytes    = new byte[SaltByteLength];
                byte[] passwordBytes = GeneralConverters.GetByteArrayFromString(password);

                randomNumberGenerator.GetBytes(salt1Bytes);
                randomNumberGenerator.GetBytes(salt2Bytes);

                PasswordHash = CreatePasswordHash(salt1Bytes, salt2Bytes, passwordBytes);
                _otpSettings = new OTPSettings(Authenticator.GenerateKey(keyLength), salt1Bytes, salt2Bytes);
                Initialized  = true;
                return(PasswordHash);
            }
        }
        private void btnGenerateSharedSecret_Click(object sender, EventArgs e)
        {
            if (txtOTPLabel.Text.Length == 0)
            {
                MessageBox.Show("Label is missing!");
                return;
            }

            Authenticator.SecretKeyLength keyLengthEnumVal = Authenticator.SecretKeyLength.n16Bytes;

            if (rb24.Checked)
            {
                keyLengthEnumVal = Authenticator.SecretKeyLength.n24Bytes;
            }
            else if (rb32.Checked)
            {
                keyLengthEnumVal = Authenticator.SecretKeyLength.n32bytes;
            }

            createAndVerifyOTP1.Init(txtOTPLabel.Text, keyLengthEnumVal);
        }