Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ scala
- Welcome to Scala version 2.8.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_22).
- Type in expressions to have them evaluated.
- Type :help for more information.
- scala> import java.security.spec._
- import java.security.spec._
- scala> import java.math.BigInteger
- import java.math.BigInteger
- scala> val keySpec = new RSAPublicKeySpec(new BigInteger("""E394D1B3CE644D809D8A85B6816E22F6C7741B9A294D2E4CB477733C16FEC0C9B346B26078944148114234393CF634A742947E264D1D22A55CF6B5E98ADACD897B9896FCDE5836008BBBC8463057F67848F5A31B41B032E4765CD546A1DD7DE3FC2423C88EAC72332AC9174E0BCA4E9FE973D90C3C622617C0CEA69B45C01CFBA90F247C26E1BCE419A251BC46287F7B00EDC34B538066CC2A285BB99B423012942768D619D261C1B668EC847E56CCF621D8B15E860FC2109317A8261F7AF894F0490703AFF323E88EAD45C4F6B8B34684D81575BF2A78AC842FD12AAE5D8EE52C9858087BE3EB8C8C7A0CA9C7ED05EBF411145E20D654A70118D586C25332A9""",16), new BigInteger("65537"))
- keySpec: java.security.spec.RSAPublicKeySpec = java.security.spec.RSAPublicKeySpec@2be44538
- scala> import java.security.KeyFactory;
- import java.security.KeyFactory
- scala> import java.security.interfaces._
- import java.security.interfaces._
- scala> val keyFactory = KeyFactory.getInstance("RSA")
- keyFactory: java.security.KeyFactory = java.security.KeyFactory@6dbe2b55
- scala> val rsaKey = keyFactory.generatePublic(keySpec).asInstanceOf[RSAPublicKey]
- rsaKey: java.security.interfaces.RSAPublicKey =
- Sun RSA public key, 2048 bits
- modulus: 28729480685212217779416650412446768800651492709725591716996840987307888120657885453372969093053671949570544151559883722036287097066487589718156070641953378245071624155178727378250963122836286047876136458955677770890434823264660866097372328266763265592260883407018628876240452440952891915884810609037124747332512998958468509645605415895312174336772331803192867536480230098726830721353033047710498621493613812162917344469821118896236728389703064784651344596517325426883584815874085587511659392925015509498994370691104234990312626748054928427086294229917844549141913076135327704746517570754445371951240527765889315189417
- public exponent: 65537
- scala> rsaKey.getFormat
- res0: java.lang.String = X.509
- scala> rsaKey.getEncoded
- res1: Array[Byte] = Array(48, -126, 1, 34, 48, 13, 6, 9, 42, -122, 72, -122, -9, 13, 1, 1, 1, 5, 0, 3, -126, 1, 15, 0, 48, -126, 1, 10, 2, -126, 1, 1, 0, -29, -108, -47, -77, -50, 100, 77, -128, -99, -118, -123, -74, -127, 110, 34, -10, -57, 116, 27, -102, 41, 77, 46, 76, -76, 119, 115, 60, 22, -2, -64, -55, -77, 70, -78, 96, 120, -108, 65, 72, 17, 66, 52, 57, 60, -10, 52, -89, 66, -108, 126, 38, 77, 29, 34, -91, 92, -10, -75, -23, -118, -38, -51, -119, 123, -104, -106, -4, -34, 88, 54, 0, -117, -69, -56, 70, 48, 87, -10, 120, 72, -11, -93, 27, 65, -80, 50, -28, 118, 92, -43, 70, -95, -35, 125, -29, -4, 36, 35, -56, -114, -84, 114, 51, 42, -55, 23, 78, 11, -54, 78, -97, -23, 115, -39, 12, 60, 98, 38, 23, -64, -50, -90, -101, 69, -64, 28, -5, -87, 15, 36, 124, 38, -31, -68, -28, 25, -94,...
- scala> rsaKey
- res2: java.security.interfaces.RSAPublicKey =
- Sun RSA public key, 2048 bits
- modulus: 28729480685212217779416650412446768800651492709725591716996840987307888120657885453372969093053671949570544151559883722036287097066487589718156070641953378245071624155178727378250963122836286047876136458955677770890434823264660866097372328266763265592260883407018628876240452440952891915884810609037124747332512998958468509645605415895312174336772331803192867536480230098726830721353033047710498621493613812162917344469821118896236728389703064784651344596517325426883584815874085587511659392925015509498994370691104234990312626748054928427086294229917844549141913076135327704746517570754445371951240527765889315189417
- public exponent: 65537
- scala> rsaKey.getClass
- res3: java.lang.Class[_] = class sun.security.rsa.RSAPublicKeyImpl
- scala> import sun.misc.BASE64Encoder
- import sun.misc.BASE64Encoder
- scala> val b64enc = new BASE64Encoder()
- b64enc: sun.misc.BASE64Encoder = sun.misc.BASE64Encoder@520b368f
- scala> b64enc.encode( rsaKey.getEncoded )
- res4: java.lang.String =
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA45TRs85kTYCdioW2gW4i9sd0G5opTS5M
- tHdzPBb+wMmzRrJgeJRBSBFCNDk89jSnQpR+Jk0dIqVc9rXpitrNiXuYlvzeWDYAi7vIRjBX9nhI
- 9aMbQbAy5HZc1Uah3X3j/CQjyI6scjMqyRdOC8pOn+lz2Qw8YiYXwM6mm0XAHPupDyR8JuG85Bmi
- UbxGKH97AO3DS1OAZswqKFu5m0IwEpQnaNYZ0mHBtmjshH5WzPYh2LFehg/CEJMXqCYfeviU8EkH
- A6/zI+iOrUXE9rizRoTYFXW/KnishC/RKq5djuUsmFgIe+PrjIx6DKnH7QXr9BEUXiDWVKcBGNWG
- wlMyqQIDAQAB
- scala> import sun.security.util.DerValue
- import sun.security.util.DerValue
- scala> val der = new DerValue( rsaKey.getEncoded )
- der: sun.security.util.DerValue = [DerValue, tag = 48, length = 290]
- scala> import sun.security.x509.X509Key
- import sun.security.x509.X509Key
- scala> val newKey = X509Key.parse(der)
- newKey: java.security.PublicKey =
- Sun RSA public key, 2048 bits
- modulus: 28729480685212217779416650412446768800651492709725591716996840987307888120657885453372969093053671949570544151559883722036287097066487589718156070641953378245071624155178727378250963122836286047876136458955677770890434823264660866097372328266763265592260883407018628876240452440952891915884810609037124747332512998958468509645605415895312174336772331803192867536480230098726830721353033047710498621493613812162917344469821118896236728389703064784651344596517325426883584815874085587511659392925015509498994370691104234990312626748054928427086294229917844549141913076135327704746517570754445371951240527765889315189417
- public exponent: 65537
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement