-module(compat). -export([unpack_issuer/1, unpack_signature/1]). -include_lib("public_key/include/public_key.hrl"). unpack_issuer(Issuer) -> unpack_issuer(erlang:system_info(otp_release), Issuer). unpack_signature(Signature) -> unpack_signature(erlang:system_info(otp_release), Signature). %% @doc Dig out alg, params and key from issuer. unpack_issuer("17", Issuer) -> #'SubjectPublicKeyInfo'{ algorithm = #'AlgorithmIdentifier'{algorithm = Alg, parameters = Params}, subjectPublicKey = {0, Key}} = Issuer, {Alg, Params, Key}; unpack_issuer("18", Issuer) -> #'SubjectPublicKeyInfo'{ algorithm = #'AlgorithmIdentifier'{algorithm = Alg, parameters = Params}, subjectPublicKey = Key} = Issuer, {Alg, Params, Key}. %% @doc Unpack a #'Certificate'.signature, return the signature. unpack_signature("17", Signature) -> {_, Sig} = Signature, Sig; unpack_signature("18", Signature) -> Signature.