Unicode C
Unicode 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 Unicode C Downloads
#include <C_CkCrypt2W.h>
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2W crypt;
const wchar_t *secretKey;
HCkStringBuilderW 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 = CkCrypt2W_Create();
// Base32 secret key:
secretKey = L"oebf ytfl qmzb p4xd 2ztf zyz4 hjrw 3uyo";
sbKey = CkStringBuilderW_Create();
success = CkStringBuilderW_Append(sbKey,secretKey);
// Remove SPACE chars.
numRemoved = CkStringBuilderW_Replace(sbKey,L" ",L"");
// 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;
wprintf(L"Your token is: %s\n",CkCrypt2W_totp(crypt,CkStringBuilderW_getAsString(sbKey),L"base32",L"0",L"",timePeriod,numDigits,-1,L"sha1"));
CkCrypt2W_Dispose(crypt);
CkStringBuilderW_Dispose(sbKey);
}