Skip to content

Instantly share code, notes, and snippets.

@samrocketman
Last active December 3, 2018 13:09
Show Gist options
  • Select an option

  • Save samrocketman/6cf6f9ea1d31da9f92ada758bca22313 to your computer and use it in GitHub Desktop.

Select an option

Save samrocketman/6cf6f9ea1d31da9f92ada758bca22313 to your computer and use it in GitHub Desktop.
Jenkins script console decrypt base64 encoded string
//http://www.mysamplecode.com/2011/08/java-rsa-encrypt-string-using-bouncy.html
import jenkins.bouncycastle.api.PEMEncodable
import static jenkins.bouncycastle.api.PEMEncodable.decode
import hudson.util.Secret
import java.util.Base64
import org.bouncycastle.crypto.engines.RSAEngine
import org.bouncycastle.crypto.AsymmetricBlockCipher
import org.bouncycastle.crypto.params.AsymmetricKeyParameter
import org.bouncycastle.crypto.util.PrivateKeyFactory
String encrypted_string = "Tye2N35iNoSe0ixZ0GnNHvjo4RvDLx2qq/NhFcq8tLVqOiVVX2HacdpijFdS1MkOQvk9sylNbcXNTW2yvXXFjyPLmTwxQPl9z7Eymfz37QsGy57TQURFikVIrOrrlw8f30Fizk23JnmI20fWgbv157o6CTWPC314jHE/Xy+kSF0="
String priv_key = '''
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCmDT2vGthvevV7QbZygYowDsIfmpFFDyAl5UmF3aDFxgKnFrQW
Ro0tc/mjo0sJC3w4DH3/oe0EQPYqL5bzCDSE4dTiA5i26dwvROQGFpOvh9ks4691
zoJ/yUnBDD1DxZh0CC4jzb1OBfp1VnF9pGAMXHzor7LLnKUXWnf+PLKJ4wIDAQAB
AoGBAKF5KszGvEXcOi87/aFoGusUzu1Qr4eKZ+ayC0cj+B2aqiW1zDYFMXBL4Syh
tGv9QTR34WbfHc8PJNJtKMr45afpAJRIZsckWhijgIvfbudp2VmA8fiqhlfYSPA7
XXAIS86npR+t5lvR0Fk8CnDXaDrlBC2W3lIOoT/IN19iLcRxAkEA2xWNJwPX99aA
XBh4yXWKW2dwBJigdVK2Ml0QLGkqf6WoYeQJTxUBUHRGCGibO/8PzwKTZEKhkAQQ
ES0fOwm6tQJBAMIIEr8uZoE4q534gQy0+Fl4oBviPr43g7t5w5WELhL1O+a8/ao/
ybEQjmyvcIUWcmWV1K0GtSkQUgDvQRP42TcCQQChplE0DF35/EdRrKzS2Otxbez1
NziN2K2ek5QvcJlu/egz8nH769/AYUqbQbPonNYpRBlEzPUwsg643bZBdXhRAkB0
GHqHE89XcD4XVjJ5FOsoNamvJW8fR341tYSWOLGMvFksFVa+AE7A+EQPueVcbHLk
X4MSSForCM3YK0/IEHR/AkAuFScon0cc1Z3gIPlQg0dNDMDlnT9cyC4C7EwU4CKN
APzykkuomc5jpgtKw9o3AJsITlLMrMlO8a7vLdrT/5WO
-----END RSA PRIVATE KEY-----
'''.trim()
Secret p = Secret.fromString('')
// https://howtodoinjava.com/java-8/base64-encoding-and-decoding-example-in-java-8/
AsymmetricBlockCipher e = new RSAEngine()
e = new org.bouncycastle.crypto.encodings.PKCS1Encoding(e)
key_pair = decode(priv_key, ((p)? p.plainText : null) as char[])
key = key_pair.toPrivateKey()
AsymmetricKeyParameter privateKey = (AsymmetricKeyParameter) PrivateKeyFactory.createKey(key.encoded)
e.init(false, privateKey)
byte[] messageBytes = Base64.decoder.decode(encrypted_string)
byte[] hexEncodedCipher = e.processBlock(messageBytes, 0, messageBytes.length)
outputData = new String(hexEncodedCipher)
println outputData
@samrocketman
Copy link
Author

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