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/