113
114 return key.getEncoded();
115 }
116
117 public static ECPrivateKey decodePKCS8ECPrivateKey(byte[] encoded)
118 throws InvalidKeySpecException {
119 KeyFactory keyFactory = getKeyFactory();
120 PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
121
122 return (ECPrivateKey)keyFactory.generatePrivate(keySpec);
123 }
124
125 public static ECPrivateKey generateECPrivateKey(BigInteger s,
126 ECParameterSpec params) throws InvalidKeySpecException {
127 KeyFactory keyFactory = getKeyFactory();
128 ECPrivateKeySpec keySpec = new ECPrivateKeySpec(s, params);
129
130 return (ECPrivateKey)keyFactory.generatePrivate(keySpec);
131 }
132
133 private static AlgorithmParameters getECParameters(Provider p) {
134 try {
135 if (p != null) {
136 return AlgorithmParameters.getInstance("EC", p);
137 }
138
139 return AlgorithmParameters.getInstance("EC");
140 } catch (NoSuchAlgorithmException nsae) {
141 throw new RuntimeException(nsae);
142 }
143 }
144
145 public static byte[] encodeECParameterSpec(Provider p,
146 ECParameterSpec spec) {
147 AlgorithmParameters parameters = getECParameters(p);
148
149 try {
150 parameters.init(spec);
151 } catch (InvalidParameterSpecException ipse) {
152 throw new RuntimeException("Not a known named curve: " + spec);
153 }
|
113
114 return key.getEncoded();
115 }
116
117 public static ECPrivateKey decodePKCS8ECPrivateKey(byte[] encoded)
118 throws InvalidKeySpecException {
119 KeyFactory keyFactory = getKeyFactory();
120 PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
121
122 return (ECPrivateKey)keyFactory.generatePrivate(keySpec);
123 }
124
125 public static ECPrivateKey generateECPrivateKey(BigInteger s,
126 ECParameterSpec params) throws InvalidKeySpecException {
127 KeyFactory keyFactory = getKeyFactory();
128 ECPrivateKeySpec keySpec = new ECPrivateKeySpec(s, params);
129
130 return (ECPrivateKey)keyFactory.generatePrivate(keySpec);
131 }
132
133 public static AlgorithmParameters getECParameters(Provider p) {
134 try {
135 if (p != null) {
136 return AlgorithmParameters.getInstance("EC", p);
137 }
138
139 return AlgorithmParameters.getInstance("EC");
140 } catch (NoSuchAlgorithmException nsae) {
141 throw new RuntimeException(nsae);
142 }
143 }
144
145 public static byte[] encodeECParameterSpec(Provider p,
146 ECParameterSpec spec) {
147 AlgorithmParameters parameters = getECParameters(p);
148
149 try {
150 parameters.init(spec);
151 } catch (InvalidParameterSpecException ipse) {
152 throw new RuntimeException("Not a known named curve: " + spec);
153 }
|