C
C
Generate TOTP using Base32 Secret (6 Digits, Time-based, 30-second period)
See more Encryption Examples
Generates a 6-digit time-based TOTP code using a base32 secret with a 30-second time period.Chilkat C Downloads
#include <C_CkCrypt2.h>
#include <C_CkStringBuilder.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2 crypt;
const char *secretKey;
HCkStringBuilder sbKey;
int numRemoved;
int numDigits;
int timePeriod;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
//
crypt = CkCrypt2_Create();
// Base32 secret key:
secretKey = "oebf ytfl qmzb p4xd 2ztf zyz4 hjrw 3uyo";
sbKey = CkStringBuilder_Create();
success = CkStringBuilder_Append(sbKey,secretKey);
// Remove SPACE chars.
numRemoved = CkStringBuilder_Replace(sbKey," ","");
// Note: A new token is generated every 30 seconds. You must generate within the same 30 second interval to get the same result.
// Generate 6 digits.
numDigits = 6;
// 30 second time period.
timePeriod = 30;
printf("Your token is: %s\n",CkCrypt2_totp(crypt,CkStringBuilder_getAsString(sbKey),"base32","0","",timePeriod,numDigits,-1,"sha1"));
CkCrypt2_Dispose(crypt);
CkStringBuilder_Dispose(sbKey);
}