私は、NetSuite を Walmart Marketplace API と統合するための suitescript に取り組んでいます。そして、ここの別のOPが正しいと言っているように、彼らのドキュメントには、Javaを使用しない場合は自分でいるとほとんど書かれています。
suitescript または javascript で同じことを行う方法を探しています。
Walmart の API ドキュメントからの指示:
次の方法で、このデータのバイト配列表現に署名します。
秘密鍵の Base 64、PKCS-8 表現をデコードします。キーは PKCS-8 を使用してエンコードされていることに注意してください。さまざまな言語のライブラリでは、キーがこの形式であり、PKCS-1 などの他の競合する形式ではないことを指定する機能が提供されています。キーのこのバイト表現を使用して、SHA-256 With RSA を使用してデータに署名します。Base 64 を使用して結果の署名をエンコードします。
そして、同じことを行うためのドキュメントの Java コード:
public static String signData(String stringToBeSigned, String encodedPrivateKey) {
String signatureString = null;
try {
byte[] encodedKeyBytes = Base64.decodeBase64(encodedPrivateKey);
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(encodedKeyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey myPrivateKey = kf.generatePrivate(privSpec);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(myPrivateKey);
byte[] data = stringToBeSigned.getBytes("UTF-8");
signature.update(data);
byte[] signedBytes = signature.sign();
signatureString = Base64.encodeBase64String(signedBytes);
} catch (Exception e) {
e.printStackTrace();
}
return signatureString;
}
参考までに、dot net に求められた同様のものを次に示します。どんな助けでも大歓迎です。