Generování testovacích klíčů
Pro komunikaci s bránou, potřebujete mít k dispozici pár asymetrických RSA klíčů o délce 2048 bitů. Jde o podpisové klíče, které reprezentují vás jako obchodníka.
Privátní klíč si bezpečně uložte a používejte ho pro podepisování požadavků, které posíláte bráně. Privátní klíč nikdy nesdílejte s jinými stranami včetně Benefit Management, ani neposílejte veřejnými komunikačními kanály jako je např. e-mail.
Váš veřejný klíč musí mít k dispozici brána, která ho použije ke kontrole podpisů vašich požadavků.
Testovací klíče si můžete vygenerovat sami. Vygenerujte si určitě nový pár a ten používejte pouze k podepisování požadavků při komunikaci s platební bránou MúzaPay. Nepoužívejte stejné klíče zároveň k jiným účelům.
Způsobů, jak klíče vygenerovat, je mnoho. Některé příklady jsou zmíněné dále.
Webový generátor
Můžete použít webový generátor klíčů https://cryptotools.net/rsagen
Hodnotu veřejného klíče, který jste si vygenerovali, nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.
OpenSSL
Pokud máte ve vašem prostředí k dispozici OpenSSL knihovnu, můžete ji použít. Postupujte následovně.
Vygenerujte váš pár. Privátní klíč si uložte do souboru.
Verze 1 a 2
$ openssl version
OpenSSL 1.1.1f 31 Mar 2020
$ openssl genrsa > private.key
Generating RSA private key, 2048 bit long modulus (2 primes)
....................................................................................+++++
........................................+++++
e is 65537 (0x010001)Verze 3
$ openssl genrsa --traditional 2048Uložte do souboru veřejný klíč
$ openssl rsa -in ./private.key -pubout > public.pem
writing RSA keySoubor
public.pemnebo jeho obsah nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.
Java
Vygenerujte pár. Veřejný klíč uložte do souboru.
try {
// Generate RSA 2048-bit key pair
java.security.KeyPairGenerator keyPairGenerator = java.security.KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
java.security.KeyPair keyPair = keyPairGenerator.generateKeyPair();
// Retrieve public and private keys from the key pair
java.security.interfaces.RSAPublicKey publicKey = (java.security.interfaces.RSAPublicKey) keyPair.getPublic();
java.security.interfaces.RSAPrivateKey privateKey = (java.security.interfaces.RSAPrivateKey) keyPair.getPrivate();
// Convert public key to PEM format
String publicKeyPEM = getPEM(publicKey);
// Write public key to public.pem file
try (java.io.FileWriter fileWriter = new java.io.FileWriter("public.pem")) {
fileWriter.write(publicKeyPEM);
} catch (java.io.IOException e) {
e.printStackTrace();
}
} catch (java.security.NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
// Converts RSAPublicKey to a PEM format
private static String getPEM(java.security.interfaces.RSAPublicKey publicKey) {
byte[] publicKeyBytes = publicKey.getEncoded();
String base64Encoded = java.util.Base64.getEncoder().encodeToString(publicKeyBytes);
StringBuilder result = new StringBuilder();
result.append("-----BEGIN PUBLIC KEY-----\n");
int lineLength = 64;
for (int i = 0; i < base64Encoded.length(); i += lineLength) {
int endIndex = Math.min(i + lineLength, base64Encoded.length());
result.append(base64Encoded, i, endIndex).append("\n");
}
result.append("-----END PUBLIC KEY-----\n");
return result.toString();
}
Soubor public.pem nebo jeho obsah nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.