From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/public_key/doc/src/public_key.xml | 317 ++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 lib/public_key/doc/src/public_key.xml (limited to 'lib/public_key/doc/src/public_key.xml') diff --git a/lib/public_key/doc/src/public_key.xml b/lib/public_key/doc/src/public_key.xml new file mode 100644 index 0000000000..dc9a96906f --- /dev/null +++ b/lib/public_key/doc/src/public_key.xml @@ -0,0 +1,317 @@ + + + + +
+ + 2008 + 2008 + Ericsson AB, All Rights Reserved + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + + + public_key + Ingela Anderton Andin + + + + +
+ public_key + API module for public key infrastructure. + +

This module provides functions to handle public key infrastructure + from RFC 3280 - X.509 certificates (will later be upgraded to RFC 5280) + and some parts of the PKCS-standard. + Currently this application is mainly used by the new + ssl implementation. The API is yet under construction + and only a few of the functions are currently documented and thereby supported. +

+
+ +
+ COMMON DATA TYPES + +

All records used in this manual + + are generated from asn1 specifications + and are documented in the User's Guide. See Public key records and X.509 Certificate records. +

+ +

Use the following include directive to get access to the + records and constant macros described here and in the User's Guide.

+ + -include_lib("public_key/include/public_key.hrl"). + +

Data Types

+ +

boolean() = true | false

+ +

string = [bytes()]

+ +

asn1_der_encoded() = binary() | [bytes()]

+ +

der_bin() = binary()

+ +

oid() - a tuple of integers + as generated by the asn1 compiler.

+ +

public_key() = rsa_public_key() | dsa_public_key()

+ +

rsa_public_key() = #'RSAPublicKey'{}

+ +

rsa_private_key() = #'RSAPrivateKey'{}

+ +

dsa_public_key() = integer()

+ +

public_key_params() = dsa_key_params()

+ +

dsa_key_params() = #'Dss-Parms'{}

+ +

private_key() = rsa_private_key() | dsa_private_key()

+ +

rsa_private_key() = #'RSAPrivateKey'{}

+ +

dsa_private_key() = #'DSAPrivateKey'{}

+ +

x509_certificate() = "#Certificate{}"

+ +

x509_tbs_certificate() = #'TBSCertificate'{}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + decode_private_key(KeyInfo) -> + decode_private_key(KeyInfo, Password) -> {ok, PrivateKey} | {error, Reason} + Decodes an asn1 der encoded private key. + + KeyInfo = {KeyType, der_bin(), ChipherInfo} + As returned from pem_to_der/1 for private keys + KeyType = rsa_private_key | dsa_private_key + ChipherInfo = opaque() | no_encryption + ChipherInfo may contain encryption parameters if the private key is password + protected, these are opaque to the user just pass the value returned by pem_to_der/1 + to this function. + Password = string() + Must be specified if CipherInfo =/= no_encryption + PrivateKey = private_key() + Reason = term() + + +

Decodes an asn1 der encoded private key.

+
+
+ + + pem_to_der(File) -> {ok, [Entry]} + Reads a PEM file and translates it into its asn1 der + encoded parts. + + File = path() + Password = string() + Entry = {entry_type(), der_bin(), CipherInfo} + ChipherInfo = opaque() | no_encryption + ChipherInfo may contain encryption parameters if the private key is password + protected, these will be handled by the function decode_private_key/2. + entry_type() = cert | cert_req | rsa_private_key | dsa_private_key | + dh_params + + +

Reads a PEM file and translates it into its asn1 der + encoded parts.

+
+
+ + + pkix_decode_cert(Cert, Type) -> {ok, DecodedCert} | {error, Reason} + Decodes an asn1 der encoded pkix certificate. + + Cert = asn1_der_encoded() + Type = plain | otp + DecodeCert = x509_certificate() + When type is specified as otp the asn1 spec OTP-PKIX.asn1 is used to decode known + extensions and enhance the signature field in + #'Certificate'{} and '#TBSCertificate'{}. This is currently used by the new ssl + implementation but not documented and supported for the public_key application. + Reason = term() + + +

Decodes an asn1 encoded pkix certificate.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
-- cgit v1.2.3