Ciao a tutti,
sto provando
questohttps://labs.ericsson.com/apis/sms-send-and-receive/documentationservizio
della ericsson che permette di ricevere e inviare sms. Ricevo
correttamente i dati tramite una callback url in questo formato
?from=[MSISDN]&time=[TIMESTAMP]&message=[MESSAGE]&hmac=[HMAC]
L’ultimo parametro, hmac, è un hmac sha1 codificato in base64, ottenuto da
una chiave (la mia chiave personale per accedere al servizio) e da una
stringa ottenuta concatenando gli altri 3 parametri (from, time,
message).
Per verificare l’autenticità del messaggio dunque dovrei ricalcolare
l’hmac
e confrontarlo con quello che mi è stato inviato. Ho provato con questo
metodo:
def verify(key = “SECRET”)
digest = OpenSSL::Digest::Digest.new(‘sha1’)
data = @from + @time + @message
Base64.encode64(OpenSSL::HMAC.digest(digest, key, data)) == @hmac
end
ma, come avrete già capito, non riesco a far coincidere il codice da me
calcolato con quuello che mi è stato inviato. Avete dei suggerimenti da
darmi? Magari sto sbagliando tutto.
Grazie