Interfaces informatiques Exemples d`implémentations

Transcription

Interfaces informatiques Exemples d`implémentations
Interfaces informatiques
Exemples d’implémentations
Fédération Française de Tennis de Table
01/07/2015
3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13
Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com
Version
1.0
2.0
Date
Modifications
03/07/2015 Création
24/07/2015 Implémentation VB / VBA
Tables des matières
Contenu ................................................................................................................................................... 2
Exemples java .......................................................................................................................................... 2
Exemples ruby ......................................................................................................................................... 2
Exemples VB6 ou VBA ............................................................................................................................. 3
1
3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13
Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com
Contenu
Ce document est le fruit des différentes participations des développeurs qui ont implémenté, dans
leur application ou site internet, les interfaces Smartping fournies par la FFTT.
Il est destiné à s’enrichir au fur et à mesure des contributions de chacun. N’hésitez pas à nous faire
part de vos réussites à l’adresse mail suivante : [email protected]
La FFTT assure un rôle de centralisation et de mise à disposition de ces différents exemples. Elle ne
peut en garantir l’efficacité, n’étant pas l’auteur de ces lignes.
Exemples java
Le code java équivalent pour calculer la clé de contrôle tmc est le suivant :
final String key = DigestUtils.md5Hex("FFTT");
final String tmc = HmacUtils.hmacSha1Hex(key, "20150611140022081");
Il nécessite l'import de la librairie apache commons codec 1.10.
Toutes les informations pour la référencer sont disponibles depuis ce
lien http://mvnrepository.com/artifact/commons-codec/commons-codec/1.10.
Exemples ruby
require 'digest'
require 'openssl'
tm = Time.now.strftime("%Y%m%d%H%M%S%L")
secret = Digest::MD5.hexdigest("mpffT*****")
tmc = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha1'), secret, tm)
2
3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13
Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com
Exemples VB6 ou VBA
‘Code des fonctions MD5Hash et HMACSHA1 nécessaires pour le calcul du tmc à partir du tm et du
passwd :
Function MD5Hash(ByVal sTextToHash As String)
Dim asc As Object, enc As Object
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
TextToHash = asc.Getbytes_4(sTextToHash)
hash = enc.ComputeHash_2((TextToHash))
MD5Hash = ""
For i = 0 To UBound(hash)
MD5Hash = MD5Hash & Right("0" & Hex(hash(i)), 2)
Next
MD5Hash = LCase(MD5Hash)
End Function
Function HMACSHA1(ByVal sTextToHash As String, ByVal sSharedSecretKey As String)
Dim asc As Object, enc As Object
Dim TextToHash() As Byte
Dim SharedSecretKey() As Byte
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")
TextToHash = asc.Getbytes_4(sTextToHash)
SharedSecretKey = asc.Getbytes_4(sSharedSecretKey)
enc.Key = SharedSecretKey
Dim bytes() As Byte
bytes = enc.ComputeHash_2((TextToHash))
HMACSHA1 = ""
For i = 0 To 19
HMACSHA1 = HMACSHA1 & Right("0" & Hex(bytes(i)), 2)
Next
HMACSHA1 = LCase(HMACSHA1)
End Function
‘ Nota, pas de prise en compte des millisecondes en VBA, la fonction Timer ayant une précision de
l’ordre du centième de seconde est utilisée pour le calcul du tm
tm = Strings.Format(Now, "yyyymmddhhnnss") & Right(Format(Timer, "#0.000"), 3)
secret = MD5Hash("FFTT")
tmc = HMACSHA1(tm, secret)
3
3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13
Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com