HMAC ha autenticato le chiamate API con upload di file multipart / form-data

2

Abbiamo un'API esistente in cui terze parti possono inviare dati. Le chiamate API sono autenticate con HMAC utilizzando lo stesso schema descritto nella libreria ApiAuth di Ruby che utilizzo per verificare le richieste firmate. Ora è necessario supportare upload di file multipart / form-data.

Sto tentando di scrivere uno script bash come una chiamata API di esempio usando cURL. Ne ho già uno che funziona senza upload di file (richiesta POST con solo dati JSON) qui .

La parte su cui sono bloccato sta generando il $content_md5 per la richiesta multipart. Comprendo che il contenuto di una richiesta multipart ha sezioni di contenuto separate dalla stringa di confine, come descritto qui .

  • Problema 1: cURL genera la propria stringa di confine e la aggiunge alla mia intestazione del tipo di contenuto
  • Problema 2: dovrei MD5 l'intero corpo della richiesta con le stringhe di confine e le intestazioni di sezione incluse?

Quindi, in sostanza, devo essere in grado di sapere quale sia la stringa di confine in modo da poter generare una stringa che assomigli alle sezioni e ai limiti del contenuto descritti in link in modo da poterlo MD5.

C'è un modo per farlo con solo cURL? C'è un modo migliore per costruire una richiesta multipart firmata HMAC?

Speravo di farlo con cURL per presentare un esempio generalizzato agli sviluppatori di terze parti che si integreranno con la nostra API in modo che possano firmare le loro richieste in qualsiasi lingua stiano utilizzando.

    
posta DiegoSalazar 08.04.2015 - 01:16
fonte

0 risposte

Leggi altre domande sui tag