179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro/***************************************************************/ 279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro/****** DO NOT EDIT THIS CLASS bc-java SOURCE FILE ******/ 379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro/***************************************************************/ 479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giropackage org.bouncycastle.jcajce.util; 579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giroimport java.io.IOException; 779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giroimport java.security.AlgorithmParameters; 879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giroimport org.bouncycastle.asn1.ASN1Encodable; 1079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giroimport org.bouncycastle.asn1.ASN1Primitive; 1179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 1279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro/** 1379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * General JCA/JCE utility methods. 1479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro */ 1579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giropublic class AlgorithmParametersUtils 1679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro{ 1779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 1879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 1979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro private AlgorithmParametersUtils() 2079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 2179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 2279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 2379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 2479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro /** 2579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * Extract an ASN.1 encodable from an AlgorithmParameters object. 2679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * 2779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @param params the object to get the encoding used to create the return value. 2879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @return an ASN.1 object representing the primitives making up the params parameter. 2979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @throws IOException if an encoding cannot be extracted. 3079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro */ 3179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro public static ASN1Encodable extractParameters(AlgorithmParameters params) 3279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro throws IOException 3379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 3479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro // we try ASN.1 explicitly first just in case and then role back to the default. 3579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro ASN1Encodable asn1Params; 3679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro try 3779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 3879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro asn1Params = ASN1Primitive.fromByteArray(params.getEncoded("ASN.1")); 3979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 4079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro catch (Exception ex) 4179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 4279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro asn1Params = ASN1Primitive.fromByteArray(params.getEncoded()); 4379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 4479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 4579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro return asn1Params; 4679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 4779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro 4879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro /** 4979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * Load an AlgorithmParameters object with the passed in ASN.1 encodable - if possible. 5079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * 5179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @param params the AlgorithmParameters object to be initialised. 5279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @param sParams the ASN.1 encodable to initialise params with. 5379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro * @throws IOException if the parameters cannot be initialised. 5479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro */ 5579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro public static void loadParameters(AlgorithmParameters params, ASN1Encodable sParams) 5679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro throws IOException 5779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 5879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro // we try ASN.1 explicitly first just in case and then role back to the default. 5979d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro try 6079d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 6179d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro params.init(sParams.toASN1Primitive().getEncoded(), "ASN.1"); 6279d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 6379d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro catch (Exception ex) 6479d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro { 6579d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro params.init(sParams.toASN1Primitive().getEncoded()); 6679d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 6779d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro } 6879d3bf2425a53baab7feb744dad710b6c15533c9Sergio Giro} 69