added Credentials decoder

This commit is contained in:
Radek Davidek 2025-10-21 14:54:06 +02:00
parent 91186cef68
commit a3ebd99fb6
4 changed files with 108 additions and 1 deletions

View File

@ -0,0 +1,49 @@
package cz.trask.migration.util;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.util.Base64;
import java.util.Map;
import javax.crypto.Cipher;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.log4j.Log4j2;
@Log4j2
public class CredentialsDecoder {
public static void decodeCredentials(String credentials, String pkFile) throws Exception {
String decodedJson = new String(Base64.getDecoder().decode(credentials));
log.debug("Decoded JSON: {}", decodedJson);
ObjectMapper mapper = new ObjectMapper();
Map<String, String> jsonMap = mapper.readValue(decodedJson, Map.class);
String cipherBase64 = jsonMap.get("c");
String transformation = jsonMap.get("t");
log.debug("Used algorithm: {}", transformation);
String privateKeyPEM = new String(Files.readAllBytes(Paths.get(pkFile)))
.replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", "")
.replaceAll("\\s+", "");
byte[] privateKeyBytes = Base64.getDecoder().decode(privateKeyPEM);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
byte[] encryptedBytes = Base64.getDecoder().decode(cipherBase64);
Cipher cipher = Cipher.getInstance(transformation);
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
String decryptedText = new String(decryptedBytes, "UTF-8");
log.debug("Decoded credential: {}", decryptedText);
}
}

View File

@ -1,11 +1,13 @@
# Source WSO2 API Manager v3.2.0
SOURCE_REGISTRATION_API_URL = https://localhost:9443/client-registration/v0.17/register
SOURCE_PUBLISHER_API_URL = https://localhost:9443/api/am/publisher
SOURCE_DEVPORTAL_API_URL = https://localhost:9443/api/am/store
SOURCE_PUBLISHER_TOKEN_URL = https://localhost:9443/oauth2/token
SOURCE_WSO2_USER = YWRtaW46YWRtaW4=
# Target WSO2 API Manager v4.5.0
TARGET_REGISTRATION_API_URL = https://localhost:9443/client-registration/v0.17/register
TARGET_PUBLISHER_API_URL = https://localhost:9443/api/am/publisher/v3/apis/import
TARGET_PUBLISHER_API_URL = https://localhost:9443/api/am/publisher/v4/apis/import
TARGET_DEVPORTAL_API_URL = https://localhost:9443/api/am/devportal
TARGET_PUBLISHER_TOKEN_URL = https://localhost:9443/oauth2/token
TARGET_WSO2_USER = YWRtaW46YWRtaW4=

28
wso2apim32-pk.pem Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDF6qhlhtD9KvwM
4VD7+psRsKnpXNvmHMfuhreF/YVnFEoXQfpvwI4zPPz7Sa8R1hW9v/fWMwQvYIhC
GRBGiXUiu4PqcE6aSO5clIF+JySUxolk5GG4KsHiugfHOgbX1paaxwDSCd8Eqjag
ZdKMmadnEiH7ZfqzIcJ/IxlnTQvMPKuChdZBfIW8IDZrHnizuwqIc4zc/gD1bhBT
CagSLgdCY+AmMgzh4ZU+HQa0gA034E5DUqRQjs7O14cJMu7dWPEzSzDxBFrJl2Ge
I8X5T2fd9rWY7gosGxbiYMuODxH8m4AZNf9IQQaPQHkdZAA/qbLEoXPbHANoIa9P
6t2+SS07AgMBAAECggEAGN1RuauVzvCbCN03yOhjmfXZat2FLOQ5xAA9x0IiA+C7
LC/YUDjfRJWpbMKFkZaVVajr8IepQ3B7vd4bOtljE3F+cbIZVe3KsGvh1uEBCgXl
Vf0RP8tzX1Iizwc9u9kUQ66zri+aSqI9yanxKUPWka7oAQb/V4jqwAE/XEiELmzK
R/KSIWo/4msCfgnkHBLXyD4vE8iIotsSep7fh7kOJjfj4jqEJ8h1ojFiLtxDkjtn
y9EkQ3+jJTXf8YgebCaJI3iLplNETWyqJIuvWDh9ivqHR3pZFXhaEWIJabddOZW4
lth/oja1D17W73X8dpL6VqA5+ahVMg/oO7T57ps6CQKBgQDlS8avs8B6NZkAW8wS
vBQ/0eVnF1/wZ+swSsk/05MgSFcMdVe1Fb+WfaFpv+GlGhihNj5WX5bQzvSNh49d
9fWUp4/EI9NUyezxOcEnnoehELTuMY9L/m6HBL2s5jowOwI9h537Ye+Ty+qWezI1
uPl8IDlspoRtjrsUmhSKP5IB8wKBgQDc91aRjxNEA+1uNh0GAGPWslPmv5z2oAU0
VWGQCjoles2I9NL+Qdxlrce7O2cIedh3DVR6Ep0mqGBNvSXkQSNNT3Aldr3OZj2s
6DkFLi7u6XyZD2vIxWRRQPV5fAN9x6nTsNrFfY6VSfAgKADijwnbFk/J1RzyEqON
Tk7p/t+xmQKBgQCuhRtHdd/E5HB8hmHvzHj5Di+1ZGQgHWgzjGhajRVJF+YxVEqa
SGBXEW2+iE4dFJy0bw3JPd4TNcGKyyfCk0cEivhwh/f8a+hMvfGWzyFZ5NZhCRWQ
+Kl1WJVpOJ4HQZJ19He48pSfgDAfssrHeu9gm0I5wQ/AN0eK6a9CfhoKIwKBgQDQ
o7aY4EinqzGwI+ZJuWqL2XwBYCHceQIRBSGG+TEoHIkf7VOggh2R4IG8F33U8f/j
gbGnRhYe31N3c8bofFzR7dUNes4DqmRH9EmKy63DJrHgcEAspb1wP27JU8CULkf7
u30GhuRvsA3Mvxj+02LR/IJAKDsZk2Hc1fkLVv5u2QKBgQCIMfG+LcnFwIzuy+NT
A4PLkbwiNfVGRQ9wca00BP5VXDUjFd6u2MW2YDG36gixxknQqWHMKiz457pWu6dW
UHtQ8DT+xT60pJl5OeOL9LKkV+3+NrNzIE6zi3A6Nz8Q35t3u56VN4gA9mT/zNqr
k7C/Z4klVgt5GHzPgHxu9VlmCQ==
-----END PRIVATE KEY-----

28
wso2apim45-pk.pem Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCv08/Rb7tTM3kS
fWJRD4ATrK/qADT8gRnx3iVMtySb1Tl4S7ui1xVKZQnz1qnoXi6TCFMTai1XYt7n
jX26l/WYp/gDaceZvhbcJI+cHEzwp4w664ZzuS00Ma6LfXracudR4FVrtolOZTHk
aCOMAHYnYMHSnGSkQhHrkcnUl3sy9AhlhKd7XQOf/7CeZYsmdcawdvOpBCaynhgz
ieYk+YcC2HSU3ND5XSBfB0nv27FgJQ/zWEANqAsSBdb3vzD3jmi/JHwYrcrdekba
ez5J4kL5u8lVnDjHJDJ7AGvfLT6ph1KeMPb7g7cgoaMbmNmMeFdHoqokUCQXSa/o
vSgWVLyjAgMBAAECggEABdV600GoTwHptf3YCcWAY+a6bYK1P12PPVG4HhwDiHIi
NoYYwzXsvGuu0Vrhh1a8p99CVmYS/A/JQpiUv+Cz4u1L0t0rJMREYOiLpUvhF6kP
g5L2Apf10oIFfxZaQa5HU5Wkb+7+Dk5YQfJcn5QSV4sj0zeiNTsF+jF7p2ShT1bw
Wp6rt2qCBASvdnwk1hrtneEtF3Gj7eBBMBYEqbCrpc4lItWaGG05ihqIJuP3WulY
7eF+M5Qj4vDe0w1tfeQc9RHJUfHkODsHyWKBH/qHL7FfHFrh+qlt1rwN94BbyPV3
PYEQ9a9lawdy1ExVG8pEMfUSyRORo8Ium66EyomCLQKBgQDrbSzbw8HixYlQn4dN
UJsAmbmcgikmKEp1ca+v4N/WvZhlzdktxxOB3CFDq29vZjcxHYNlalhbsUXjIDfV
zvmi1ywJaEuEnatnYxim9F2JTFOuPQgI+oIXRrG196Cs7gh70Pg07csXuqPPFaH8
CoVHZFq9auSgPdmAn9an3isXVQKBgQC/MVIL3m4L5QjFsVTfrq3GhgRkjwSEKJc0
Sb7PlR3yJG2vLzwJndp83Hs3BBIMisUYq/z9W/ySs5mo262r4e6PBfZmmDmFZWSP
82+3edHRX6PvVVPPFJNy85HKvF0IP1JQei/uwr7KjfnXlcAS4gfIsdzDcWMwk7SK
qGwCAhcUFwKBgCg56VZLpo9W7VWHTJkbUsDRg3OIkfthGwfiOwC0TcrlbmrGt3so
7t5bfJuRaWMBdiDASDlF6H8SVTyvvpqb2O/IEFAzL+QjBKyPtCCi1HCnSA0XhI30
L9JGVAshmqSxr2VomWCB2Rfe3ip+KcVlDszaCt8eqp3us4FUzlq0jWxZAoGAE8eK
cWflgp2DNtCNs0Zi+/LJaY3SLcn1OpeWgesvWemi30jHsUb/X4N/y8VECMAie9bv
KVbm3lZuQyXW5b1N7MX1I9ADw2Ul7i6FFDoqFrsKPqxZK0c5qd7A6nRqO3wxi9nY
M586FcJyYnc/k7SGkaC08hM8672cI+wgoGSO9qkCgYBPlLR7GO+wJCcPNUnMLc68
oQXjpL+gtIU64xr595OMwPyFiM8lHBJXlVhkIb5mKB/sYtMy/TVbgBp18K6yHrBg
cG3K5P/M4fT2x94TDfE88Rw5vmWuuLj5Sp3M59TaUu3msAsNIqeqqLTIMxed4k46
MkB36R3/CBxgp135HreFzA==
-----END PRIVATE KEY-----