Я (медленно) изучаю Node JS и пытаюсь использовать его вместо имеющегося у меня PHP-скрипта.Мне нужно подписать строку, которую я собрал, с помощью SSL, чтобы передать запрос curl
.
В PHP вот как я это сделал:
$sig = '2018-08-24T17:33:41Z:abcdef:/path/to/api';
$pkeyid = openssl_pkey_get_private("file://YourMomGoesToCollege.pem");
// Sign 'sig' with private key
if(openssl_sign($sig, $signed_signature, $pkeyid, "sha256WithRSAEncryption")) {
openssl_free_key($pkeyid);
//Set curl header options ...
curl_setopt($ch, CURLOPT_HTTPHEADER,
[
"X-Apple-CloudKit-Request-SignatureV1: " . base64_encode($signed_signature),
]
);
}
Итак, я пытаюсь сгенерировать эввивалент $signed_signature
, но я не уверен, что делать дальше,Кажется, что Node's Crypto может сделать что-то подобное, но его параметры кажутся другими.Это мое лучшее предположение:
const crypto = require('crypto')
const sign = crypto.createSign('SHA256')
sign.write(sig)
sign.end()
const privateKey = __dirname + 'YourMomGoesToCollege.pem'
var signedSignature = sign.sign(privateKey, 'hex')
var readyForCurl = Buffer.from(signedSignature).toString('base64')
Я на правильном пути?