| /* |
| * Copyright (C) 2015 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.conscrypt; |
| |
| import java.io.ByteArrayInputStream; |
| import java.math.BigInteger; |
| import junit.framework.TestCase; |
| |
| public class OpenSSLKeyTest extends TestCase { |
| static final String RSA_PUBLIC_KEY = |
| "-----BEGIN PUBLIC KEY-----\n" + |
| "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOHsK2E2FLYfEMWEVH/rJMTqDZLLLysh\n" + |
| "AH5odcfhYdF9xvFFU9rqJT7zXUDH4SjdhZGUUAO5IOC1e8ZIyRsbiY0CAwEAAQ==\n" + |
| "-----END PUBLIC KEY-----"; |
| |
| static final String RSA_PRIVATE_KEY = |
| "-----BEGIN RSA PRIVATE KEY-----\n" + |
| "MIIBOgIBAAJBAOHsK2E2FLYfEMWEVH/rJMTqDZLLLyshAH5odcfhYdF9xvFFU9rq\n" + |
| "JT7zXUDH4SjdhZGUUAO5IOC1e8ZIyRsbiY0CAwEAAQJBALcu+oGJC0QcbknpIWbT\n" + |
| "L+4mZTkYXLeYu8DDTHT0j47+6eEyYBOoRGcZDdlMWquvFIrV48RSot0GPh1MBE1p\n" + |
| "lKECIQD4krM4UshCwUHH9ZVkoxcPsxzPTTW7ukky4RZVN6mgWQIhAOisOAXVVjon\n" + |
| "fbGNQ6CezH7oOttEeZmiWCu48AVCyixVAiAaDZ41OA//Vywi3i2jV6iyH47Ud347\n" + |
| "R+ImMAtcMTJZOQIgF0+Z1UvIdc8bErzad68xQc22h91WaYQQXWEL+xrz8nkCIDcA\n" + |
| "MpCP/H5qTCj/l5rxQg+/NUGCg2pHHNLL+cy5N5RM\n" + |
| "-----END RSA PRIVATE KEY-----"; |
| |
| static final BigInteger RSA_MODULUS = new BigInteger( |
| "e1ec2b613614b61f10c584547feb24c4ea0d92cb2f2b21007e6875c7e161d17d" + |
| "c6f14553daea253ef35d40c7e128dd8591945003b920e0b57bc648c91b1b898d", 16); |
| |
| static final BigInteger RSA_PUBLIC_EXPONENT = new BigInteger("10001", 16); |
| static final BigInteger RSA_PRIVATE_EXPONENT = new BigInteger( |
| "b72efa81890b441c6e49e92166d32fee266539185cb798bbc0c34c74f48f8efe" + |
| "e9e1326013a84467190dd94c5aabaf148ad5e3c452a2dd063e1d4c044d6994a1", 16); |
| |
| public void test_fromPublicKeyPemInputStream() throws Exception { |
| ByteArrayInputStream is = new ByteArrayInputStream(RSA_PUBLIC_KEY.getBytes()); |
| OpenSSLKey key = OpenSSLKey.fromPublicKeyPemInputStream(is); |
| OpenSSLRSAPublicKey publicKey = (OpenSSLRSAPublicKey)key.getPublicKey(); |
| assertEquals(RSA_MODULUS, publicKey.getModulus()); |
| assertEquals(RSA_PUBLIC_EXPONENT, publicKey.getPublicExponent()); |
| } |
| |
| public void test_fromPrivateKeyPemInputStream() throws Exception { |
| ByteArrayInputStream is = new ByteArrayInputStream(RSA_PRIVATE_KEY.getBytes()); |
| OpenSSLKey key = OpenSSLKey.fromPrivateKeyPemInputStream(is); |
| OpenSSLRSAPrivateKey privateKey = (OpenSSLRSAPrivateKey)key.getPrivateKey(); |
| assertEquals(RSA_MODULUS, privateKey.getModulus()); |
| assertEquals(RSA_PRIVATE_EXPONENT, privateKey.getPrivateExponent()); |
| } |
| } |
| |