module PKIX1Explicit88_Types {

import from PKIX1Explicit88 all;
import from Native_Functions all;

external function dec_X520name(in octetstring stream) return X520name
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520name(in X520name msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520CommonName(in octetstring stream) return X520CommonName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520CommonName(in X520CommonName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520LocalityName(in octetstring stream) return X520LocalityName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520LocalityName(in X520LocalityName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520StateOrProvinceName(in octetstring stream) return X520StateOrProvinceName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520StateOrProvinceName(in X520StateOrProvinceName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520OrganizationName(in octetstring stream) return X520OrganizationName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520OrganizationName(in X520OrganizationName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520OrganizationalUnitName(in octetstring stream) return X520OrganizationalUnitName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520OrganizationalUnitName(in X520OrganizationalUnitName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520Title(in octetstring stream) return X520Title
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520Title(in X520Title msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520dnQualifier(in octetstring stream) return X520dnQualifier
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520dnQualifier(in X520dnQualifier msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520countryName(in octetstring stream) return X520countryName
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520countryName(in X520countryName msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520SerialNumber(in octetstring stream) return X520SerialNumber
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520SerialNumber(in X520SerialNumber msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_X520Pseudonym(in octetstring stream) return X520Pseudonym
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_X520Pseudonym(in X520Pseudonym msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_Certificate(in octetstring stream) return Certificate
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_Certificate(in Certificate msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

}
