Skip to content

Instantly share code, notes, and snippets.

@cust0m
Created June 29, 2020 14:21
Show Gist options
  • Save cust0m/765669b538ae5cb4d21c66198ba75148 to your computer and use it in GitHub Desktop.
Save cust0m/765669b538ae5cb4d21c66198ba75148 to your computer and use it in GitHub Desktop.
javascript
var encoded_priv_key =
hexToBytes("308204a30201000282vb56ab5106685aedas12123ebd577ec1e6f3648c11b7dd03eba10756ca");
var encoded_public_key =
hexToBytes("30820122300d312312306092a86483123128dba6dd8311150203010001");
function inJava() {
var MAGHttpClient = Java.use("com.ca.mas.core.http.MAGHttpClient");
MAGHttpClient.execute.overload('com.ca.mas.foundation.MASRequest',
'javax.net.ssl.SSLSocketFactory').implementation = function (a,b) {
var SSLSocketFactory = Java.use("android.net.SSLCertificateSocketFactory");
var insecure = SSLSocketFactory.getInsecure(0, null);
return this.execute(a, insecure);
};
var KeyUtilsAsymmetric = Java.use("com.ca.mas.core.util.KeyUtilsAsymmetric");
var PKCS8EncodedKeySpec = Java.use("java.security.spec.PKCS8EncodedKeySpec");
var KeyFactory = Java.use("java.security.KeyFactory");
KeyUtilsAsymmetric.getRsaPrivateKey.implementation = function(a) {
var buffer = Java.array('byte', encoded_priv_key);
var keySpecPKCS8 = PKCS8EncodedKeySpec.$new(buffer);
var kf = KeyFactory.getInstance("RSA");
var privKey = kf.generatePrivate(keySpecPKCS8);
return privKey;
};
var X509EncodedKeySpec = Java.use("java.security.spec.X509EncodedKeySpec");
KeyUtilsAsymmetric.getRsaPublicKey.implementation = function(a) {
if(a=="com.ca.mas.foundation.msso.DEVICE_IDENTIFIER"){
console.log("JUMP JEY");
return this.getRsaPublicKey(a);
}
var buffer = Java.array('byte', encoded_public_key);
var keySpecX509 = X509EncodedKeySpec.$new(buffer);
var kf = KeyFactory.getInstance("RSA");
var pubKey = kf.generatePublic(keySpecX509);
return pubKey;
};
}
function hexToBytes(hex) {
for (var bytes = [], c = 0; c < hex.length; c += 2)
bytes.push(parseInt(hex.substr(c, 2), 16));
return bytes;
}
Java.perform(inJava);
@cust0m
Copy link
Author

cust0m commented Jul 22, 2020

openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
cat private.pem cert.cert > filename.txt
#cert.cert is the cert return by the server after send the` cert sing request`.
openssl pkcs12 -export -in filename.txt -out filename.p12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment