Ich arbeite an einem SuiteScript, um NetSuite mit den Walmart Marketplace APIs zu integrieren. Und, wie das andere OP here sagt es richtig ihre Dokumentation sagt ziemlich viel, wenn Sie Java nicht verwenden, sind Sie auf eigene Faust.Wie dekodiere ich eine BASE64, PCKS-8 Darstellung eines privaten Schlüssels in NetSuite oder Javascript?
Ich bin auf der Suche nach einer Möglichkeit, das gleiche entweder in suitescript oder Javascript zu tun.
Anweisung von Walmart-API-Dokumentation:
das Byte-Array-Zeichen Darstellung dieser Daten durch:
Dekodierung der Base 64, PKCS-8 Darstellung Ihrer privaten Schlüssel. Beachten Sie, dass der Schlüssel mit PKCS-8 codiert ist. Bibliotheken in verschiedenen Sprachen bieten die Möglichkeit anzugeben, dass der Schlüssel in diesem Format und nicht in anderen in Konflikt stehenden Formaten wie PKCS-1 enthalten ist. Verwenden Sie diese Byte-Darstellung Ihres Schlüssels, um die Daten unter Verwendung von SHA-256 mit RSA zu signieren. Encode die resultierende Signatur Basis 64.
Und ein Java-Code aus ihrer Dokumentation das gleiche zu tun:
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;
}
als Referenz, hier ist der similar thing asked for dot net. Jede Hilfe wäre willkommen.
Bitte tag von JavaScript zu Java neu. – evolutionxbox
Ich denke, ich suche nach Hilfe nur in Javascript oder Netsuite. Der Java-Code, den ich zur Verfügung gestellt habe, dient nur als Referenz. Dies sollte also nur mit Javascript getaggt werden. Bitte korrigieren Sie, wenn ich falsch liege. – Haxvik