Usage
uses OTPLib;
TOTP
// Default: SHA1
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var totp: TTOTP;
var otpcode: string;
totp := TTOTP.Create(30, 6);
//totp := TTOTP.Create(30, 6, TOTPHashAlgorithm.SHA1);
otpcode := totp.GenerateOTP(secretkey);
// SHA256
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var totp: TTOTP;
var otpcode: string;
totp := TTOTP.Create(30, 6, TOTPHashAlgorithm.SHA256);
otpcode := totp.GenerateOTP(secretkey);
// Set Hash Algorithm - SHA512
totp.SetAlgorithm(TOTPHashAlgorithm.SHA512);
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var totp: TTOTP;
var verificationstatus: Boolean;
totp := TTOTP.Create(period, digits, algorithm);
//totp.SetPeriod(45);
verificationstatus := totp.Verify('otpcode', secretkey);
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var totp: TTOTP;
var otpurl: string;
totp := TTOTP.Create(period, digits, algorithm);
otpurl := totp.GetOTPUrl('accountname', 'servicename', secretkey);
//otpurl := totp.GetOTPUrl('user@gmail.com', 'Microsoft', secretkey, period, digits, TOTPHashAlgorithm.SHA1);
HOTP
// Default: SHA1
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var hotp: THOTP;
var otpcode: string;
hotp := THOTP.Create(1000, 6);
//hotp := THOTP.Create(30, 6, TOTPHashAlgorithm.SHA1);
otpcode := hotp.GenerateOTP(secretkey);
// SHA256
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var hotp: TTOTP;
var otpcode: string;
hotp := THOTP.Create(30, 6, TOTPHashAlgorithm.SHA256);
otpcode := hotp.GenerateOTP(secretkey);
// Set Hash Algorithm - SHA512
hotp.SetAlgorithm(TOTPHashAlgorithm.SHA512);
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var hotp: THOTP;
var verificationstatus: Boolean;
hotp := THOTP.Create(counter, digits, algorithm);
//hotp.SetCounter(652);
verificationstatus := hotp.Verify('otpcode', secretkey);
var secretkey: string := 'JBSWY3DPEHPK3PXP';
var hotp: THOTP;
var otpurl: string;
hotp := THOTP.Create(counter, digits, algorithm);
otpurl := hotp.GetOTPUrl('accountname', 'servicename', secretkey);
//otpurl := hotp.GetOTPUrl('user@gmail.com', 'Microsoft', secretkey, period, digits, TOTPHashAlgorithm.SHA1);
Class Functions
// Encoding Base32 (TOTP or HTOP)
var secretkey: string := 'your-secret-key';
var encodedSecretkey: string;
encodedSecretkey := TOTPLib.Base32Encode(TEncoding.UTF8.GetBytes(secretkey));
//encodedSecretkey := TTOTP.Base32Encode(TEncoding.UTF8.GetBytes(secretkey));
//encodedSecretkey := THOTP.Base32Encode(TEncoding.UTF8.GetBytes(secretkey));
// Check Valid Secretkey (TOTP or HTOP)
var secretkey: string := 'OBGFELDJJRGWG4DSNFBCENSBMZNUM43J';
var checksecretkey: Boolean;
checksecretkey := TOTPLib.CheckValidSecretkey(secretkey);
//checksecretkey := TTOTP.CheckValidSecretkey(secretkey);
//checksecretkey := HTOTP.CheckValidSecretkey(secretkey);
// Generate Random Secret Key
var generatedsecretkey: string;
generatedsecretkey := TOTPLib.GenerateRandomSecretKey(30);
//generatedsecretkey := TTOTP.GenerateRandomSecretKey(30);
//generatedsecretkey := THOTP.GenerateRandomSecretKey(30);
Last updated