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/crypto/doc/src/Makefile | 113 +++++ lib/crypto/doc/src/book.xml | 50 +++ lib/crypto/doc/src/crypto.xml | 785 +++++++++++++++++++++++++++++++++++ lib/crypto/doc/src/crypto_app.xml | 108 +++++ lib/crypto/doc/src/fascicules.xml | 18 + lib/crypto/doc/src/insidecover.xml | 26 ++ lib/crypto/doc/src/licenses.xml | 155 +++++++ lib/crypto/doc/src/make.dep | 20 + lib/crypto/doc/src/note.gif | Bin 0 -> 1539 bytes lib/crypto/doc/src/notes.xml | 469 +++++++++++++++++++++ lib/crypto/doc/src/ref_man.xml | 49 +++ lib/crypto/doc/src/release_notes.xml | 50 +++ lib/crypto/doc/src/usersguide.xml | 50 +++ lib/crypto/doc/src/warning.gif | Bin 0 -> 1498 bytes 14 files changed, 1893 insertions(+) create mode 100644 lib/crypto/doc/src/Makefile create mode 100644 lib/crypto/doc/src/book.xml create mode 100644 lib/crypto/doc/src/crypto.xml create mode 100644 lib/crypto/doc/src/crypto_app.xml create mode 100644 lib/crypto/doc/src/fascicules.xml create mode 100644 lib/crypto/doc/src/insidecover.xml create mode 100644 lib/crypto/doc/src/licenses.xml create mode 100644 lib/crypto/doc/src/make.dep create mode 100644 lib/crypto/doc/src/note.gif create mode 100644 lib/crypto/doc/src/notes.xml create mode 100644 lib/crypto/doc/src/ref_man.xml create mode 100644 lib/crypto/doc/src/release_notes.xml create mode 100644 lib/crypto/doc/src/usersguide.xml create mode 100644 lib/crypto/doc/src/warning.gif (limited to 'lib/crypto/doc/src') diff --git a/lib/crypto/doc/src/Makefile b/lib/crypto/doc/src/Makefile new file mode 100644 index 0000000000..d2cec9b11b --- /dev/null +++ b/lib/crypto/doc/src/Makefile @@ -0,0 +1,113 @@ +# ``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 via the world wide web 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 Utvecklings AB. +# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings +# AB. All Rights Reserved.'' +# +# $Id$ +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(CRYPTO_VSN) +APPLICATION=crypto + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- +XML_APPLICATION_FILES = ref_man.xml +XML_REF3_FILES = crypto.xml +XML_REF6_FILES = crypto_app.xml + +XML_PART_FILES = release_notes.xml usersguide.xml +XML_CHAPTER_FILES = notes.xml licenses.xml + +BOOK_FILES = book.xml + +GIF_FILES = + +# ---------------------------------------------------- + +HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \ + $(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html) + +INFO_FILE = ../../info + +MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3) +MAN6_FILES = $(XML_REF6_FILES:%_app.xml=$(MAN6DIR)/%.6) + +HTML_REF_MAN_FILE = $(HTMLDIR)/index.html + +TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- +XML_FLAGS += + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +$(HTMLDIR)/%.gif: %.gif + $(INSTALL_DATA) $< $@ + + +docs: pdf html man + +$(TOP_PDF_FILE): $(XML_FILES) + +pdf: $(TOP_PDF_FILE) + +html: gifs $(HTML_REF_MAN_FILE) + +man: $(MAN3_FILES) $(MAN6_FILES) + +gifs: $(GIF_FILES:%=$(HTMLDIR)/%) + +debug opt valgrind: + +clean clean_docs clean_tex: + rm -rf $(HTMLDIR)/* + rm -f $(MAN3DIR)/* + rm -f $(MAN6DIR)/* + rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) + rm -f errs core *~ + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_docs_spec: docs + $(INSTALL_DIR) $(RELSYSDIR)/doc/pdf + $(INSTALL_DATA) $(TOP_PDF_FILE) $(RELSYSDIR)/doc/pdf + $(INSTALL_DIR) $(RELSYSDIR)/doc/html + $(INSTALL_DATA) $(HTMLDIR)/* \ + $(RELSYSDIR)/doc/html + $(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR) + $(INSTALL_DIR) $(RELEASE_PATH)/man/man3 + $(INSTALL_DATA) $(MAN3DIR)/* $(RELEASE_PATH)/man/man3 + $(INSTALL_DIR) $(RELEASE_PATH)/man/man6 + $(INSTALL_DATA) $(MAN6DIR)/* $(RELEASE_PATH)/man/man6 + + +release_spec: + diff --git a/lib/crypto/doc/src/book.xml b/lib/crypto/doc/src/book.xml new file mode 100644 index 0000000000..f07208482c --- /dev/null +++ b/lib/crypto/doc/src/book.xml @@ -0,0 +1,50 @@ + + + + +
+ + 19992009 + 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. + + + + crypto + Peter Högfeldt + + 1999-01-21 + A + book.sgml +
+ + + + crypto + + + + + + + + + + + + + + +
+ diff --git a/lib/crypto/doc/src/crypto.xml b/lib/crypto/doc/src/crypto.xml new file mode 100644 index 0000000000..42ba523c8c --- /dev/null +++ b/lib/crypto/doc/src/crypto.xml @@ -0,0 +1,785 @@ + + + + +
+ + 19992009 + 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. + + + + crypto + Peter Högfeldt + + 2000-06-20 + B +
+ crypto + Crypto Functions + +

This module provides a set of cryptographic functions. +

+

References:

+ + +

md5: The MD5 Message Digest Algorithm (RFC 1321)

+
+ +

sha: Secure Hash Standard (FIPS 180-2)

+
+ +

hmac: Keyed-Hashing for Message Authentication (RFC 2104)

+
+ +

des: Data Encryption Standard (FIPS 46-3)

+
+ +

aes: Advanced Encryption Standard (AES) (FIPS 197)

+
+ +

ecb, cbc, cfb, ofb: Recommendation for Block Cipher Modes + of Operation (NIST SP 800-38A).

+
+ +

rsa: Recommendation for Block Cipher Modes of Operation + (NIST 800-38A)

+
+ +

dss: Digital Signature Standard (FIPS 186-2)

+
+
+

The above publications can be found at NIST publications, at IETF. +

+

Types

+
+byte() = 0 ... 255
+ioelem() = byte() | binary() | iolist()
+iolist() = [ioelem()]
+Mpint() = >]]>
+    
+

+
+ + + start() -> ok + Start the crypto server. + +

Starts the crypto server.

+
+
+ + stop() -> ok + Stop the crypto server. + +

Stops the crypto server.

+
+
+ + info() -> [atom()] + Provide a list of available crypto functions. + +

Provides the available crypto functions in terms of a list + of atoms.

+
+
+ + info_lib() -> [{Name,VerNum,VerStr}] + Provides information about the libraries used by crypto. + + Name = binary() + VerNum = integer() + VerStr = binary() + + +

Provides the name and version of the libraries used by crypto.

+

Name is the name of the library. VerNum is + the numeric version according to the library's own versioning + scheme. VerStr contains a text variant of the version.

+
+> info_lib().
+[{<<"OpenSSL">>,9469983,<<"OpenSSL 0.9.8a 11 Oct 2005">>}]
+        
+
+
+ + md5(Data) -> Digest + Compute an MD5message digest from Data + + Data = iolist() | binary() + Digest = binary() + + +

Computes an MD5 message digest from Data, where + the length of the digest is 128 bits (16 bytes).

+
+
+ + md5_init() -> Context + Creates an MD5 context + + Context = binary() + + +

Creates an MD5 context, to be used in subsequent calls to + md5_update/2.

+
+
+ + md5_update(Context, Data) -> NewContext + Update an MD5 Contextwith Data, and return a NewContext + + Data = iolist() | binary() + Context = NewContext = binary() + + +

Updates an MD5 Context with Data, and returns + a NewContext.

+
+
+ + md5_final(Context) -> Digest + Finish the update of an MD5 Contextand return the computed MD5message digest + + Context = Digest = binary() + + +

Finishes the update of an MD5 Context and returns + the computed MD5 message digest.

+
+
+ + sha(Data) -> Digest + Compute an SHAmessage digest from Data + + Data = iolist() | binary() + Digest = binary() + + +

Computes an SHA message digest from Data, where + the length of the digest is 160 bits (20 bytes).

+
+
+ + sha_init() -> Context + Create an SHA context + + Context = binary() + + +

Creates an SHA context, to be used in subsequent calls to + sha_update/2.

+
+
+ + sha_update(Context, Data) -> NewContext + Update an SHA context + + Data = iolist() | binary() + Context = NewContext = binary() + + +

Updates an SHA Context with Data, and returns + a NewContext.

+
+
+ + sha_final(Context) -> Digest + Finish the update of an SHA context + + Context = Digest = binary() + + +

Finishes the update of an SHA Context and returns + the computed SHA message digest.

+
+
+ + md5_mac(Key, Data) -> Mac + Compute an MD5 MACmessage authentification code + + Key = Data = iolist() | binary() + Mac = binary() + + +

Computes an MD5 MAC message authentification code + from Key and Data, where the the length of the + Mac is 128 bits (16 bytes).

+
+
+ + md5_mac_96(Key, Data) -> Mac + Compute an MD5 MACmessage authentification code + + Key = Data = iolist() | binary() + Mac = binary() + + +

Computes an MD5 MAC message authentification code + from Key and Data, where the length of the Mac + is 96 bits (12 bytes).

+
+
+ + sha_mac(Key, Data) -> Mac + Compute an MD5 MACmessage authentification code + + Key = Data = iolist() | binary() + Mac = binary() + + +

Computes an SHA MAC message authentification code + from Key and Data, where the length of the Mac + is 160 bits (20 bytes).

+
+
+ + sha_mac_96(Key, Data) -> Mac + Compute an MD5 MACmessage authentification code + + Key = Data = iolist() | binary() + Mac = binary() + + +

Computes an SHA MAC message authentification code + from Key and Data, where the length of the Mac + is 96 bits (12 bytes).

+
+
+ + des_cbc_encrypt(Key, IVec, Text) -> Cipher + Encrypt Textaccording to DES in CBC mode + + Key = Text = iolist() | binary() + IVec = Cipher = binary() + + +

Encrypts Text according to DES in CBC + mode. Text must be a multiple of 64 bits (8 + bytes). Key is the DES key, and IVec is an + arbitrary initializing vector. The lengths of Key and + IVec must be 64 bits (8 bytes).

+
+
+ + des_cbc_decrypt(Key, IVec, Cipher) -> Text + Decrypt Cipheraccording to DES in CBC mode + + Key = Cipher = iolist() | binary() + IVec = Text = binary() + + +

Decrypts Cipher according to DES in CBC mode. + Key is the DES key, and IVec is an arbitrary + initializing vector. Key and IVec must have + the same values as those used when encrypting. Cipher + must be a multiple of 64 bits (8 bytes). The lengths of + Key and IVec must be 64 bits (8 bytes).

+
+
+ + des_cbc_ivec(Data) -> IVec + Get IVec to be used in next iteration of + des_cbc_[ecrypt|decrypt] + + Data = iolist() | binary() + IVec = binary() + + +

Returns the IVec to be used in a next iteration of + des_cbc_[encrypt|decrypt]. Data is the encrypted + data from the previous iteration step.

+
+
+ + des3_cbc_encrypt(Key1, Key2, Key3, IVec, Text) -> Cipher + Encrypt Textaccording to DES3 in CBC mode + + Key1 =Key2 = Key3 Text = iolist() | binary() + IVec = Cipher = binary() + + +

Encrypts Text according to DES3 in CBC + mode. Text must be a multiple of 64 bits (8 + bytes). Key1, Key2, Key3, are the DES + keys, and IVec is an arbitrary initializing + vector. The lengths of each of Key1, Key2, + Key3 and IVec must be 64 bits (8 bytes).

+
+
+ + des3_cbc_decrypt(Key1, Key2, Key3, IVec, Cipher) -> Text + Decrypt Cipheraccording to DES in CBC mode + + Key1 = Key2 = Key3 = Cipher = iolist() | binary() + IVec = Text = binary() + + +

Decrypts Cipher according to DES3 in CBC mode. + Key1, Key2, Key3 are the DES key, and + IVec is an arbitrary initializing vector. + Key1, Key2, Key3 and IVec must + and IVec must have the same values as those used when + encrypting. Cipher must be a multiple of 64 bits (8 + bytes). The lengths of Key1, Key2, + Key3, and IVec must be 64 bits (8 bytes).

+
+
+ + blowfish_cfb64_encrypt(Key, IVec, Text) -> Cipher + Encrypt Textusing Blowfish in CFB mode with 64 + bit feedback + + Key = Text = iolist() | binary() + IVec = Cipher = binary() + + +

Encrypts Text using Blowfish in CFB mode with 64 bit + feedback. Key is the Blowfish key, and IVec is an + arbitrary initializing vector. The length of IVec + must be 64 bits (8 bytes).

+
+
+ + blowfish_cfb64_decrypt(Key, IVec, Text) -> Cipher + Decrypt Textusing Blowfish in CFB mode with 64 + bit feedback + + Key = Text = iolist() | binary() + IVec = Cipher = binary() + + +

Decrypts Text using Blowfish in CFB mode with 64 bit + feedback. Key is the Blowfish key, and IVec is an + arbitrary initializing vector. The length of IVec + must be 64 bits (8 bytes).

+
+
+ + aes_cfb_128_encrypt(Key, IVec, Text) -> Cipher + aes_cbc_128_encrypt(Key, IVec, Text) -> Cipher + Encrypt Textaccording to AES in Cipher Feedback mode or Cipher Block Chaining mode + + Key = Text = iolist() | binary() + IVec = Cipher = binary() + + +

Encrypts Text according to AES in Cipher Feedback + mode (CFB) or Cipher Block Chaining mode (CBC). Text + must be a multiple of 128 bits (16 bytes). Key is the + AES key, and IVec is an arbitrary initializing vector. + The lengths of Key and IVec must be 128 bits + (16 bytes).

+
+
+ + aes_cfb_128_decrypt(Key, IVec, Cipher) -> Text + aes_cbc_128_decrypt(Key, IVec, Cipher) -> Text + Decrypt Cipheraccording to AES in Cipher Feedback mode or Cipher Block Chaining mode + + Key = Cipher = iolist() | binary() + IVec = Text = binary() + + +

Decrypts Cipher according to Cipher Feedback Mode (CFB) + or Cipher Block Chaining mode (CBC). + Key is the AES key, and IVec is an arbitrary + initializing vector. Key and IVec must have + the same values as those used when encrypting. Cipher + must be a multiple of 128 bits (16 bytes). The lengths of + Key and IVec must be 128 bits (16 bytes).

+
+
+ + aes_cbc_ivec(Data) -> IVec + Get IVec to be used in next iteration of + aes_cbc_*_[ecrypt|decrypt] + + Data = iolist() | binary() + IVec = binary() + + +

Returns the IVec to be used in a next iteration of + aes_cbc_*_[encrypt|decrypt]. Data is the encrypted + data from the previous iteration step.

+
+
+ + erlint(Mpint) -> N + mpint(N) -> Mpint + Convert between binary multi-precision integer and erlang big integer + + Mpint = binary() + N = integer() + + +

Convert a binary multi-precision integer Mpint to and from + an erlang big integer. A multi-precision integer is a binary + with the following form: + >]]> where both + ByteLen and Bytes are big-endian. Mpints are used in + some of the functions in crypto and are not translated + in the API for performance reasons.

+
+
+ + rand_bytes(N) -> binary() + Generate a binary of random bytes + + N = integer() + + +

Generates N bytes randomly uniform 0..255, and returns the + result in a binary. Uses the crypto library pseudo-random + number generator.

+
+
+ + rand_uniform(Lo, Hi) -> N + Generate a random number + + Lo, Hi, N = Mpint | integer() + Mpint = binary() + + +

Generate a random number Uses the + crypto library pseudo-random number generator. The + arguments (and result) can be either erlang integers or binary + multi-precision integers.

+
+
+ + mod_exp(N, P, M) -> Result + Perform N ^ P mod M + + N, P, M, Result = Mpint + Mpint = binary() + + +

This function performs the exponentiation N ^ P mod M, + using the crypto library.

+
+
+ + + rsa_sign(Data, Key) -> Signature + rsa_sign(DigestType, Data, Key) -> Signature + Sign the data using rsa with the given key. + + Data = Mpint + Key = [E, N, D] + E, N, D = Mpint + Where E is the public exponent, N is public modulus and + D is the private exponent. + DigestType = md5 | sha + The default DigestType is sha. + Mpint = binary() + Signature = binary() + + +

Calculates a DigestType digest of the Data + and creates a RSA signature with the private key Key + of the digest.

+
+
+ + + rsa_verify(Data, Signature, Key) -> Verified + rsa_verify(DigestType, Data, Signature, Key) -> Verified + Verify the digest and signature using rsa with given public key. + + Verified = boolean() + Data, Signature = Mpint + Key = [E, N] + E, N = Mpint + Where E is the public exponent and N is public modulus. + DigestType = md5 | sha + The default DigestType is sha. + Mpint = binary() + + +

Calculates a DigestType digest of the Data + and verifies that the digest matches the RSA signature using the + signer's public key Key. +

+
+
+ + + rsa_public_encrypt(PlainText, PublicKey, Padding) -> ChipherText + Encrypts Msg using the public Key. + + PlainText = binary() + PublicKey = [E, N] + E, N = Mpint + Where E is the public exponent and N is public modulus. + Padding = rsa_pkcs1_padding | rsa_pkcs1_oaep_padding | rsa_no_padding + ChipherText = binary() + + +

Encrypts the PlainText (usually a session key) using the PublicKey + and returns the cipher. The Padding decides what padding mode is used, + rsa_pkcs1_padding is PKCS #1 v1.5 currently the most + used mode and rsa_pkcs1_oaep_padding is EME-OAEP as + defined in PKCS #1 v2.0 with SHA-1, MGF1 and an empty encoding + parameter. This mode is recommended for all new applications. + The size of the Msg must be less + than byte_size(N)-11 if + rsa_pkcs1_padding is used, byte_size(N)-41 if + rsa_pkcs1_oaep_padding is used and byte_size(N) if rsa_no_padding + is used. + Where byte_size(N) is the size part of an Mpint-1. +

+
+
+ + + rsa_private_decrypt(ChipherText, PrivateKey, Padding) -> PlainText + Decrypts ChipherText using the private Key. + + ChipherText = binary() + PrivateKey = [E, N, D] + E, N, D = Mpint + Where E is the public exponent, N is public modulus and + D is the private exponent. + Padding = rsa_pkcs1_padding | rsa_pkcs1_oaep_padding | rsa_no_padding + PlainText = binary() + + +

Decrypts the ChipherText (usually a session key encrypted with + rsa_public_encrypt/3) + using the PrivateKey and returns the + message. The Padding is the padding mode that was + used to encrypt the data, + see rsa_public_encrypt/3. +

+
+
+ + rsa_private_encrypt(PlainText, PrivateKey, Padding) -> ChipherText + Encrypts Msg using the private Key. + + PlainText = binary() + PrivateKey = [E, N, D] + E, N, D = Mpint + Where E is the public exponent, N is public modulus and + D is the private exponent. + Padding = rsa_pkcs1_padding | rsa_no_padding + ChipherText = binary() + + +

Encrypts the PlainText using the PrivateKey + and returns the cipher. The Padding decides what padding mode is used, + rsa_pkcs1_padding is PKCS #1 v1.5 currently the most + used mode. + The size of the Msg must be less than byte_size(N)-11 if + rsa_pkcs1_padding is used, and byte_size(N) if rsa_no_padding + is used. Where byte_size(N) is the size part of an Mpint-1. +

+
+
+ + + rsa_public_decrypt(ChipherText, PublicKey, Padding) -> PlainText + Decrypts ChipherText using the public Key. + + ChipherText = binary() + PublicKey = [E, N] + E, N = Mpint + Where E is the public exponent and N is public modulus + Padding = rsa_pkcs1_padding | rsa_no_padding + PlainText = binary() + + +

Decrypts the ChipherText (encrypted with + rsa_private_encrypt/3) + using the PrivateKey and returns the + message. The Padding is the padding mode that was + used to encrypt the data, + see rsa_private_encrypt/3. +

+
+
+ + + dss_sign(Data, Key) -> Signature + Sign the data using dsa with given private key. + + Digest = Mpint + Key = [P, Q, G, X] + P, Q, G, X = Mpint + Where P, Q and G are the dss + parameters and X is the private key. + Mpint = binary() + Signature = binary() + + +

Calculates the sha digest of the Data + and creates a DSS signature with the private key Key + of the digest.

+
+
+ + + dss_verify(Data, Signature, Key) -> Verified + Verify the data and signature using dsa with given public key. + + Verified = boolean() + Digest, Signature = Mpint + Key = [P, Q, G, Y] + P, Q, G, Y = Mpint + Where P, Q and G are the dss + parameters and Y is the public key. + Mpint = binary() + + +

Calculates the sha digest of the Data and verifies that the + digest matches the DSS signature using the public key Key. +

+
+
+ + + rc4_encrypt(Key, Data) -> Result + Encrypt data using RC4 + + Key, Data = iolist() | binary() + Result = binary() + + +

Encrypts the data with RC4 symmetric stream encryption. + Since it is symmetric, the same function is used for + decryption.

+
+
+ + + dh_generate_key(DHParams) -> {PublicKey,PrivateKey} + dh_generate_key(PrivateKey, DHParams) -> {PublicKey,PrivateKey} + Generates a Diffie-Hellman public key + + DHParameters = [P, G] + P, G = Mpint + Where P is the shared prime number and G is the shared generator. + PublicKey, PrivateKey = Mpint() + + +

Generates a Diffie-Hellman PublicKey and PrivateKey (if not given). +

+
+
+ + + dh_compute_key(OthersPublicKey, MyPrivateKey, DHParams) -> SharedSecret + Computes the shared secret + + DHParameters = [P, G] + P, G = Mpint + Where P is the shared prime number and G is the shared generator. + OthersPublicKey, MyPrivateKey = Mpint() + SharedSecret = binary() + + +

Computes the shared secret from the private key and the other party's public key. +

+
+
+ + + + exor(Data1, Data2) -> Result + XOR data + + Data1, Data2 = iolist() | binary() + Result = binary() + + +

Performs bit-wise XOR (exclusive or) on the data supplied.

+
+
+
+ +
+ DES in CBC mode +

The Data Encryption Standard (DES) defines an algorithm for + encrypting and decrypting an 8 byte quantity using an 8 byte key + (actually only 56 bits of the key is used). +

+

When it comes to encrypting and decrypting blocks that are + multiples of 8 bytes various modes are defined (NIST SP + 800-38A). One of those modes is the Cipher Block Chaining (CBC) + mode, where the encryption of an 8 byte segment depend not only + of the contents of the segment itself, but also on the result of + encrypting the previous segment: the encryption of the previous + segment becomes the initializing vector of the encryption of the + current segment. +

+

Thus the encryption of every segment depends on the encryption + key (which is secret) and the encryption of the previous + segment, except the first segment which has to be provided with + an initial initializing vector. That vector could be chosen at + random, or be a counter of some kind. It does not have to be + secret. +

+

The following example is drawn from the old FIPS 81 standard + (replaced by NIST SP 800-38A), where both the plain text and the + resulting cipher text is settled. The following code fragment + returns `true'. +

+
>,
+      IVec = <<16#12,16#34,16#56,16#78,16#90,16#ab,16#cd,16#ef>>,
+      P = "Now is the time for all ",
+      C = crypto:des_cbc_encrypt(Key, IVec, P),
+         % Which is the same as 
+      P1 = "Now is t", P2 = "he time ", P3 = "for all ",
+      C1 = crypto:des_cbc_encrypt(Key, IVec, P1),
+      C2 = crypto:des_cbc_encrypt(Key, C1, P2),
+      C3 = crypto:des_cbc_encrypt(Key, C2, P3),
+
+      C = <>,
+      C = <<16#e5,16#c7,16#cd,16#de,16#87,16#2b,16#f2,16#7c,
+             16#43,16#e9,16#34,16#00,16#8c,16#38,16#9c,16#0f,
+             16#68,16#37,16#88,16#49,16#9a,16#7c,16#05,16#f6>>,
+      <<"Now is the time for all ">> == 
+                        crypto:des_cbc_decrypt(Key, IVec, C).
+    ]]>
+

The following is true for the DES CBC mode. For all + decompositions P1 ++ P2 = P of a plain text message + P (where the length of all quantities are multiples of 8 + bytes), the encryption C of P is equal to C1 ++ + C2, where C1 is obtained by encrypting P1 with + Key and the initializing vector IVec, and where + C2 is obtained by encrypting P2 with Key + and the initializing vector last8(C1), + where last(Binary) denotes the last 8 bytes of the + binary Binary. +

+

Similarly, for all decompositions C1 ++ C2 = C of a + cipher text message C (where the length of all quantities + are multiples of 8 bytes), the decryption P of C + is equal to P1 ++ P2, where P1 is obtained by + decrypting C1 with Key and the initializing vector + IVec, and where P2 is obtained by decrypting + C2 with Key and the initializing vector + last8(C1), where last8(Binary) is as above. +

+

For DES3 (which uses three 64 bit keys) the situation is the + same. +

+
+
+ diff --git a/lib/crypto/doc/src/crypto_app.xml b/lib/crypto/doc/src/crypto_app.xml new file mode 100644 index 0000000000..bf1d1ae1f7 --- /dev/null +++ b/lib/crypto/doc/src/crypto_app.xml @@ -0,0 +1,108 @@ + + + + +
+ + 1999 + 2007 + 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. + + + crypto + Peter Högfeldt + Peter Högfeldt + + Peter Högfeldt + Peter Högfeldt + 2003-06-01 + B + crypto_app.sgml +
+ crypto + The Crypto Application + +

The purpose of the Crypto application is to provide message + digest and DES encryption for SMNPv3. It provides computation of + message digests MD5 and SHA, and CBC-DES encryption and + decryption.

+

+
+ +
+ Configuration +

The following environment configuration parameters are defined + for the Crypto application. Refer to application(3) for more + information about configuration parameters. +

+ + ]]> + +

Causes debug information to be written to standard + error or standard output. Default is false. +

+
+
+
+ +
+ OpenSSL libraries +

The current implementation of the Erlang Crypto application is + based on the OpenSSL package version 0.9.7 or higher. + There are source and binary releases on the web. +

+

Source releases of OpenSSL can be downloaded from the OpenSSL project home page, + or mirror sites listed there. +

+

The same URL also contains links to some compiled binaries and + libraries of OpenSSL (see the Related/Binaries menu) of + which the Shining Light Productions Win32 and OpenSSL pages are of + interest for the Win32 user. +

+

For some Unix flavours there are binary packages available + on the net. +

+

If you cannot find a suitable binary OpenSSL package, you + have to fetch an OpenSSL source release and compile it. +

+

You then have to compile and install the library + libcrypto.so (Unix), or the library libeay32.dll + (Win32). +

+

For Unix The crypto_drv dynamic driver is delivered linked + to OpenSSL libraries in /usr/local/lib, but the default + dynamic linking will also accept libraries in /lib and + /usr/lib. +

+

If that is not applicable to the particular Unix operating + system used, the example Makefile in the Crypto + priv/obj directory, should be used as a basis for + relinking the final version of the port program. +

+

For Win32 it is only required that the library can be + found from the PATH environment variable, or that they + reside in the appropriate SYSTEM32 directory; hence no + particular relinking is need. Hence no example Makefile + for Win32 is provided.

+
+ +
+ SEE ALSO +

application(3)

+
+
+ diff --git a/lib/crypto/doc/src/fascicules.xml b/lib/crypto/doc/src/fascicules.xml new file mode 100644 index 0000000000..8fc250bc75 --- /dev/null +++ b/lib/crypto/doc/src/fascicules.xml @@ -0,0 +1,18 @@ + + + + + + User's Guide + + + Reference Manual + + + Release Notes + + + Off-Print + + + diff --git a/lib/crypto/doc/src/insidecover.xml b/lib/crypto/doc/src/insidecover.xml new file mode 100644 index 0000000000..e7407b8052 --- /dev/null +++ b/lib/crypto/doc/src/insidecover.xml @@ -0,0 +1,26 @@ + + + + + + The Erlang/OTP SSL application includes software developed by the + OpenSSL Project for use in the OpenSSL Toolkit + (http://www.openssl.org/). Copyright (c) 1998-2002 The OpenSSL + Project. All rights reserved. + +
+ This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). This product includes software written by Tim + Hudson (tjh@cryptsoft.com). Copyright (C) 1995-1998 Eric Young + (eay@cryptsoft.com). All rights reserved. + +
+ For further OpenSSL and SSLeay license information se the chapter + Licenses. + + +
+ http://www.erlang.org +
+
+ diff --git a/lib/crypto/doc/src/licenses.xml b/lib/crypto/doc/src/licenses.xml new file mode 100644 index 0000000000..bae87a373e --- /dev/null +++ b/lib/crypto/doc/src/licenses.xml @@ -0,0 +1,155 @@ + + + + +
+ + 20032009 + 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. + + + + Licenses + Peter Högfeldt + + 2003-05-26 + A + licenses.xml +
+

+This chapter contains in extenso versions + of the OpenSSL and SSLeay licenses. +

+ +
+ OpenSSL License + +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +
+ +
+ SSLeay License + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +
+
+ diff --git a/lib/crypto/doc/src/make.dep b/lib/crypto/doc/src/make.dep new file mode 100644 index 0000000000..73b090bbb6 --- /dev/null +++ b/lib/crypto/doc/src/make.dep @@ -0,0 +1,20 @@ +# ---------------------------------------------------- +# >>>> Do not edit this file <<<< +# This file was automaticly generated by +# /home/otp/bin/docdepend +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# TeX files that the DVI file depend on +# ---------------------------------------------------- + +book.dvi: book.tex crypto.tex crypto_app.tex licenses.tex \ + ref_man.tex usersguide.tex + +# ---------------------------------------------------- +# Source inlined when transforming from source to LaTeX +# ---------------------------------------------------- + +book.tex: ref_man.xml + diff --git a/lib/crypto/doc/src/note.gif b/lib/crypto/doc/src/note.gif new file mode 100644 index 0000000000..6fffe30419 Binary files /dev/null and b/lib/crypto/doc/src/note.gif differ diff --git a/lib/crypto/doc/src/notes.xml b/lib/crypto/doc/src/notes.xml new file mode 100644 index 0000000000..bbdd2d873b --- /dev/null +++ b/lib/crypto/doc/src/notes.xml @@ -0,0 +1,469 @@ + + + + +
+ + 19992009 + 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. + + + + Crypto Release Notes + Peter Högfeldt + + 2003-06-06 + B + notes.xml +
+

This document describes the changes made to the Crypto application.

+ +
Crypto 1.6.3 + +
Fixed Bugs and Malfunctions + + +

+ Suppressed false valgrind errors caused by libcrypto + using uninitialized data as entropy.

+

+ Own Id: OTP-8200

+
+
+
+ + +
Improvements and New Features + + +

+ The documentation is now built with open source tools + (xsltproc and fop) that exists on most platforms. One + visible change is that the frames are removed.

+

+ Own Id: OTP-8201

+
+ +

+ When the crypto application failed to load the + OpenSSL/LibEAY shared object, error indication was + sparse. Now a more specific error message is sent to the + error logger.

+

+ Own Id: OTP-8281

+
+
+
+ +
+ +
Crypto 1.6.2 + +
Fixed Bugs and Malfunctions + + +

+ Fixed emulator crash caused by crypto using an old + openssl version that did not cope with large file + descriptors.

+

+ Own Id: OTP-8261 Aux Id: seq11434

+
+
+
+ +
+ +
Crypto 1.6.1 + +
Fixed Bugs and Malfunctions + + +

+ Makefile.in has been updated to use the LDFLAGS + environment variable (if set). (Thanks to Davide + Pesavento.)

+

+ Own Id: OTP-8157

+
+
+
+ + +
Improvements and New Features + + +

+ Support for Blowfish cfb64 added to crypto.

+

+ Own Id: OTP-8096

+
+ +

+ New function crypto:aes_cbc_ivec

+

+ Own Id: OTP-8141

+
+
+
+ +
+ +
Crypto 1.6 + +
Fixed Bugs and Malfunctions + + +

+ The dh_compute_key sometimes returned a + SharedSecret of incorrect size.

+

+ Own Id: OTP-7674

+
+
+
+ + +
Improvements and New Features + + +

+ Optimization for drivers by creating small binaries + direct on process heap.

+

+ Own Id: OTP-7762

+
+
+
+ +
+ +
Crypto 1.5.3 + +
Improvements and New Features + + +

+ Added new functions: dss_verify/3, rsa_verify/3, + rsa_verify/4, dss_sign/2, rsa_sign/2, rsa_sign/3, + rsa_public_encrypt, rsa_private_decrypt/3, + rsa_private_encrypt/3, rsa_public_decrypt/3, + dh_generate_key/1, dh_generate_key/2, dh_compute_key/3.

+

+ Own Id: OTP-7545

+
+
+
+ +
+ +
Crypto 1.5.2.1 + +
Improvements and New Features + + +

+ Minor performance optimization.

+

+ Own Id: OTP-7521

+
+
+
+ +
+ +
Crypto 1.5.2 + +
Fixed Bugs and Malfunctions + + +

+ ./configure has been improved to find 64-bit OpenSSL + libraries.

+

+ Own Id: OTP-7270

+
+
+
+ + +
Improvements and New Features + + +

+ crypto and zlib drivers improved to allow concurent smp + access.

+

+ Own Id: OTP-7262

+
+
+
+ +
+ +
+ Crypto 1.5.1.1 + +
+ Improvements and New Features + + +

The linked in driver for the crypto application is now + linked statically against the OpenSSL libraries, to avoid + installation and runtime problems in connection to the + OpenSSL library locations.

+

Own Id: OTP-6680

+
+ +

Minor Makefile changes.

+

Own Id: OTP-6689

+
+
+
+
+ +
+ Crypto 1.5 + +
+ Improvements and New Features + + +

It is now explicitly checked at start-up that the crypto + driver is properly loaded (Thanks to Claes Wikstrom).

+

Own Id: OTP-6109

+
+
+
+
+ +
+ Crypto 1.4 + +
+ Improvements and New Features + + +

The previously undocumented and UNSUPPORTED ssh + application has been updated and documented. This release + of the ssh application is still considered to be a + beta release and (if necessary) there could still be + changes in its API before it reaches 1.0.

+

Also, more cryptographic algorithms have been added to + the crypto application.

+

*** POTENTIAL INCOMPATIBILITY ***

+

Own Id: OTP-5631

+
+
+
+
+ +
+ Crypto 1.3 + +
+ Improvements and New Features + + +

Added support for RFC 3826 - The Advanced Encryption Standard + (AES) Cipher Algorithm in the SNMP User-based Security Model. +

+Martin Björklund

+
+
+
+
+ +
+ Crypto 1.2.3 + +
+ Fixed Bugs and Malfunctions + + +

Linked in drivers in the crypto, and asn1 applications + are now compiled with the -D_THREAD_SAFE and -D_REENTRANT + switches on unix when the emulator has thread support + enabled.

+

Linked in drivers on MacOSX are not compiled with the + undocumented -lbundle1.o switch anymore. Thanks to Sean + Hinde who sent us a patch.

+

Linked in driver in crypto, and port programs in ssl, now + compiles on OSF1.

+

Minor makefile improvements in runtime_tools.

+

Own Id: OTP-5346

+
+
+
+
+ +
+ Crypto 1.2.2 + +
+ Improvements and New Features + + +

Corrected error handling. If the port to the driver that + crypto uses is unexpectedly closed (which should not + happen during normal operation of crypto), crypto will + terminate immediately (rather than crashing the next time + crypto is used). Also corrected build problems on Mac OS + X.

+

Own Id: OTP-5279

+
+
+
+
+ +
+ Crypto 1.2.1 + +
+ Fixed Bugs and Malfunctions + + +

It was not possible in R9 to relink the crypto driver. + The object file was missing as well as an example + makefile. The crypto driver object file is now released + with the application (installed in priv/obj). An example + makefile has also been added to the priv/obj directory. + The makefile serves as an example of how to relink the + driver on Unix (crypto_drv.so) or Windows + (crypto_drv.dll).

+

Own Id: OTP-4828 Aux Id: seq8193

+
+
+
+
+ +
+ Crypto 1.2 + +
+ Improvements and New Features + + +

Previous versions of Crypto where delivered with + statically linked binaries based on SSLeay. That is not + longer the case. The current version of Crypto requires + dynamically linked OpenSSL libraries that the user has to + install. The library needed is libcrypto.so (Unix) + or libeay32.[lib|dll] (Win32). For further details + see the crypto(6) application manual page.

+
+ +

This version of Crypto uses the new DES interface of + OpenSSL 0.9.7, which is not backward compatible with + earlier versions of OpenSSL. +

+
+ The functions des_ede3_cbc_encrypt/5 and + des_ede3_cbc_decrypt/5 have been renamed to + des3_cbc_encrypt/5 and des3_cbc_decrypt/5, + respectively. The old functions have been retained (they are + deprecated and not listed in the crypto(3) manual page). +
+
+ +
+ Reported Fixed Bugs and Malfunctions + + +

The start of crypto failed on Windows, due to erroneous addition + of a DES3 algorithm.

+

Own Id: OTP-4684 +

+Aux Id: seq7864

+
+
+
+
+ +
+ Crypto 1.1.3 + +
+ Reported Fixed Bugs and Malfunctions + + To obtain backward compatibility with the old SSLeay + package, and with earlier versions of OpenSSL, the macro + OPENSSL_DES_LIBDES_COMPATIBILITY has been added to + crypto_drv.c. This is of importance only for the open + source version of Crypto. + + +
+
+ +
+ Crypto 1.1.2 + +
+ Reported Fixed Bugs and Malfunctions + + +

In the manual page crypto(3) the function names + md5_finish and sha_finish have been changed to + md5_final and sha_final to correctly document + the implementation.

+

Own Id: OTP-3409 +

+
+
+
+
+ +
+ Crypto 1.1.1 +

Code replacement in runtime is supported. Upgrade can be done from + from version 1.1 and downgrade to version 1.1. +

+ +
+ Improvements and New Features + + +

The driver part of the Crypto application has been + updated to use the erl_driver header file. Version 1.1.1 + requires emulator version 4.9.1 or later.

+
+
+
+
+ +
+ Crypto 1.1 + +
+ Reported Fixed Bugs and Malfunctions + + +

On Windows the crypto_drv was incorrectly linked to + static run-time libraries instead of dynamic ones.

+

Own Id: OTP-3240 +

+
+
+
+
+ +
+ Crypto 1.0 +

New application. +

+
+
+ diff --git a/lib/crypto/doc/src/ref_man.xml b/lib/crypto/doc/src/ref_man.xml new file mode 100644 index 0000000000..f801221c81 --- /dev/null +++ b/lib/crypto/doc/src/ref_man.xml @@ -0,0 +1,49 @@ + + + + +
+ + 19992009 + 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. + + + + Crypto Reference Manual + Peter Högfeldt + + 2003-06-01 + B + refman.sgml +
+ +

The Crypto Application provides functions for computation of + message digests, and encryption and decryption functions. +

+

This product includes software developed by the OpenSSL Project for + use in the OpenSSL Toolkit (http://www.openssl.org/). +

+

This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). +

+

This product includes software written by Tim Hudson + (tjh@cryptsoft.com). +

+

For full OpenSSL and SSLeay license texts, see Licenses.

+
+ + +
+ diff --git a/lib/crypto/doc/src/release_notes.xml b/lib/crypto/doc/src/release_notes.xml new file mode 100644 index 0000000000..0c2ee23e22 --- /dev/null +++ b/lib/crypto/doc/src/release_notes.xml @@ -0,0 +1,50 @@ + + + + +
+ + 1999 + 2007 + 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. + + + Crypto Release Notes + Peter Hjögfeldt + + 2003-06-01 + B + release_notes.sgml +
+ +

The Crypto Application provides functions for computation of + message digests, and encryption and decryption functions. +

+

This product includes software developed by the OpenSSL Project for + use in the OpenSSL Toolkit (http://www.openssl.org/). +

+

This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). +

+

This product includes software written by Tim Hudson + (tjh@cryptsoft.com). +

+

For full OpenSSL and SSLeay license texts, see Licenses.

+
+ +
+ diff --git a/lib/crypto/doc/src/usersguide.xml b/lib/crypto/doc/src/usersguide.xml new file mode 100644 index 0000000000..dc5bf520a9 --- /dev/null +++ b/lib/crypto/doc/src/usersguide.xml @@ -0,0 +1,50 @@ + + + + +
+ + 20032009 + 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. + + + + Crypto User's Guide + OTP Team + + 2003-06-01 + C + usersguide.sgml +
+ +

The Crypto application provides functions for + computation of message digests, and functions for encryption and + decryption. +

+

This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/). +

+

This product includes cryptographic software written by Eric + Young (eay@cryptsoft.com). +

+

This product includes software written by Tim Hudson + (tjh@cryptsoft.com). +

+

For full OpenSSL and SSLeay license texts, see Licenses. +

+
+ +
+ diff --git a/lib/crypto/doc/src/warning.gif b/lib/crypto/doc/src/warning.gif new file mode 100644 index 0000000000..96af52360e Binary files /dev/null and b/lib/crypto/doc/src/warning.gif differ -- cgit v1.2.3