Sto costruendo un generatore di licenze per nodejs e attualmente sto testando su Heroku .
Sul mio computer locale che esegue OpenSSL 1.0.1g, sono in grado di testare le mie coppie di chiavi (firma e verifica) in questo modo:
# data.txt's content (the content of the string literal): "Tsenkov"
openssl dgst -sha1 -sign private.pem data.txt > license.txt
openssl dgst -verify public.pem -signature license.txt data.txt
Ma su Heroku (OpenSSL 0.9.8) ottengo il seguente errore:
Error Signing Data
27:error:0606B06E:digital envelope routines:EVP_SignFinal:wrong public key type:p_sign.c:99:
Ecco come viene generata la mia coppia:
openssl ecparam -genkey -name secp521r1 -noout -out private.pem
openssl ec -in private.pem -pubout -outform PEM -out public.pem
Ricordo di avere lo stesso problema su OS X 10.9.2 (macchina locale), ma prima di provare qualsiasi altra cosa, ho aggiornato OpenSSL tramite Homebrew e questo miracolosamente ha iniziato a funzionare.
Suppongo che ci sia un modo più vecchio di firmare dati (sintassi, ecc.) di cui non sono a conoscenza.
Qualcuno può aiutare? Grazie.