public string Generate(string secret) { var generator = new UnpaddedHmacSha512TotpGenerator(new TotpGeneratorSettings { SharedSecret = OtpSharedSecret.FromBase32String(secret) }); return(generator.Generate(DateTime.UtcNow)); }
public void ThenItShouldGenerateCorrectCode(string sharedSecret, long counter, string expectedCode) { // Arrange var generator = new HmacSha1HotpGenerator(new HotpGeneratorSettings { SharedSecret = OtpSharedSecret.FromAsciiString(sharedSecret) }); // Act var actual = generator.Generate(counter); // Assert Assert.AreEqual(expectedCode, actual); }
public void ThenItShouldGenerateCodeFromBase32Encoded(string sharedSecret, long secondsSinceEpoch, string expectedCode) { // Arrange var generator = new HmacSha512TotpGenerator(new TotpGeneratorSettings { SharedSecret = OtpSharedSecret.FromBase32String(sharedSecret) }); var time = new DateTime(1970, 1, 1).AddSeconds(secondsSinceEpoch); // Act var actual = generator.Generate(time); // Assert Assert.AreEqual(expectedCode, actual); }
protected override byte[] ConvertSecretToHashKey(OtpSharedSecret sharedSecret) { return(sharedSecret.GetKeyOfLength(64)); }
protected override byte[] ConvertSecretToHashKey(OtpSharedSecret sharedSecret) { return(sharedSecret.Data); }