L’ambiente di sviluppo Omnis Studio 11, un concorrente di strumenti come Visual Studio di Microsoft, File Maker di Apple e Delphi della Embarcadero, supporta il TOTP, acronimo di “Time-based One Time Passwords”, o password temporanee monouso. In altre parole, queste password hanno una vita utile di un solo utilizzo o di un periodo di tempo specifico dopo il quale si autodistruggono. Due nuove funzioni ci permettono di incorporare questo protocollo nei nostri sviluppi:

OW3.$totpgenerate() e OW3.$totpvalidate()

La prima contiene 4 parametri obbligatori, più 2 opzionali, e la sua sintassi è la seguente: 

OW3.$totpgenerate(xSharedSecretKey,iTimeStep,iDigits,&iTOTP[,&cErrorText,iHashType=kOW3hashSHA1]) 

Questa funzione genera una password monouso basata sul tempo, sarà contenuta in iTOTP e per essa verrà utilizzato l’algoritmo TOTP. 

 

Sarà restituito “true” se la funzione viene eseguita correttamente. Parametri obbligatori:

xSharedSecretKey (Binary) è la chiave segreta condivisa, la sua lunghezza deve essere compresa tra 16 e 256 byte. 

iTimeStep (32 bit Integer) è il passo temporale in secondi che deve essere compreso tra 1 e 3600. iDigits (32 bit Integer) è il numero di cifre del TOTP risultante, un valore compreso tra 6 e 8. 

iTOTP (Integer 32 bit) riceve il TOTP generato. 

 

Parametri facoltativi: 

cErrorText (Character 100000000) Se fornito, riceverà la descrizione del possibile errore causato da $totpgenerate o $totpvalidate (se ha restituito false). 

iHashType (32 bit Integer), il suo valore predefinito è fornito dalla costante kOW3hashSHA1) è il tipo di “hash” da utilizzare, utilizzare una delle costanti del gruppo kOW3hash… 

La seconda contiene 4 parametri obbligatori, più 4 opzionali, e la sua sintassi è la seguente:

OW3.$totpvalidate(xSharedSecretKey,iTimeStep,iDigits,iTOTP[,&cErrorText,iHashType=kOW3hashSHA1,iStepsBefore=2,iStepsAfter=1]) 

Questa funzione convalida la password monouso basata sul tempo contenuta in iTOTP utilizzando l’algoritmo TOTP. 

Sarà restituito “true” se iTOTP restituisce un TOTP valido. Parametri obbligatori: 

xSharedSecretKey (Binary) è la chiave segreta condivisa, la sua lunghezza deve essere compresa tra 16 e 256 byte. 

TimeStep (32 bit Integer) è il passo temporale in secondi che deve essere compreso tra 1 e 3600. 

iDigits (32 bit Integer) è il numero di cifre del TOTP risultante, un valore compreso tra 6 e 8. 

iTOTP (Integer 32 bit) è il TOTP da validare. 

 

Parametri facoltativi: 

cErrorText (Character 100000000) Se fornito, riceverà la descrizione del possibile errore causato da $totpgenerate o $totpvalidate (se ha restituito false). 

iHashType (32 bit Integer), il suo valore predefinito è fornito dalla costante kOW3hashSHA1) è il tipo di “hash” da utilizzare, utilizzare una delle costanti del gruppo kOW3hash… 

iStepsBefore (32 bit Integer), il valore di default è 2 ed è il numero di passi temporali prima del momento corrente, per effettuare la verifica TOTP prevista, deve essere un valore compreso tra 1 e 20. 

iStepsAfter (Intero a 32 bit), il suo valore di default è 1 ed è il numero di passi temporali dopo l’istante corrente.Per effettuare la verifica TOTP fornita, deve essere un valore compreso tra 1 e 20.

 

autore: Francisco Ramos @ https://framosmu.blogspot.com/