fork-openpgpjs/doc/openpgp.html
Michal Kolodziej 23295342fc Added utf8 awareness to the literal and userid packet classes. Made s2k
work correctly with utf8 strings. Fixeda visibility issue with the
testing suite and added relevant unit tests.
2013-04-16 10:47:17 +02:00

1531 lines
26 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: openpgp</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: openpgp</h1>
<section>
<header>
<h2>
openpgp
</h2>
<div class="class-description">Main Openpgp.js class. Use this to initiate and make all calls to this library.</div>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="openpgp"><span class="type-signature"></span>new openpgp<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
GPG4Browsers Core interface. A single instance is hold
from the beginning. To use this library call "openpgp.init()"
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 31
</li></ul></dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="generate_key_pair"><span class="type-signature">&lt;inner> </span>generate_key_pair<span class="signature">(keyType, numBits, userId, passphrase)</span><span class="type-signature"> &rarr; {Object}</span></h4>
</dt>
<dd>
<div class="description">
generates a new key pair for openpgp. Beta stage. Currently only
supports RSA keys, and no subkeys.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>keyType</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">to indicate what type of key to make.
RSA is 1. Follows algorithms outlined in OpenPGP.</td>
</tr>
<tr>
<td class="name"><code>numBits</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">number of bits for the key creation. (should
be 1024+, generally)</td>
</tr>
<tr>
<td class="name"><code>userId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">assumes already in form of "User Name
<username@email.com>"</td>
</tr>
<tr>
<td class="name"><code>passphrase</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The passphrase used to encrypt the resulting private key</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 421
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
{privateKey: [openpgp_msg_privatekey],
privateKeyArmored: [string], publicKeyArmored: [string]}
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="init"><span class="type-signature">&lt;inner> </span>init<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
initializes the library:
- reading the keyring from local storage
- reading the config from local storage
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 39
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="read_message"><span class="type-signature">&lt;inner> </span>read_message<span class="signature">(armoredText)</span><span class="type-signature"> &rarr; {openpgp_msg_message[]}</span></h4>
</dt>
<dd>
<div class="description">
reads message packets out of an OpenPGP armored text and
returns an array of message objects
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>armoredText</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">text to be parsed</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 130
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
on error the function
returns null
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_message[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="read_messages_dearmored"><span class="type-signature">&lt;inner> </span>read_messages_dearmored<span class="signature">(input)</span><span class="type-signature"> &rarr; {openpgp_msg_message[]}</span></h4>
</dt>
<dd>
<div class="description">
reads message packets out of an OpenPGP armored text and
returns an array of message objects. Can be called externally or internally.
External call will parse a de-armored messaged and return messages found.
Internal will be called to read packets wrapped in other packets (i.e. compressed)
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>input</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">dearmored text of OpenPGP packets, to be parsed</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 151
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
on error the function
returns null
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_message[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="read_privateKey"><span class="type-signature">&lt;inner> </span>read_privateKey<span class="signature">(armoredText)</span><span class="type-signature"> &rarr; {openpgp_msg_privatekey[]}</span></h4>
</dt>
<dd>
<div class="description">
reads several privateKey objects from a ascii armored
representation an returns openpgp_msg_privatekey objects
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>armoredText</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">OpenPGP armored text containing
the private key(s)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 100
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
on error the function
returns null
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_privatekey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="read_publicKey"><span class="type-signature">&lt;inner> </span>read_publicKey<span class="signature">(armoredText)</span><span class="type-signature"> &rarr; {openpgp_msg_publickey[]}</span></h4>
</dt>
<dd>
<div class="description">
reads several publicKey objects from a ascii armored
representation an returns openpgp_msg_publickey packets
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>armoredText</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">OpenPGP armored text containing
the public key(s)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 54
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
on error the function
returns null
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_publickey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="write_encrypted_message"><span class="type-signature">&lt;inner> </span>write_encrypted_message<span class="signature">(publickeys, messagetext)</span><span class="type-signature"> &rarr; {String}</span></h4>
</dt>
<dd>
<div class="description">
creates a binary string representation of an encrypted message.
The message will be encrypted with the public keys specified
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>publickeys</code></td>
<td class="type">
<span class="param-type">Object[]</span>
</td>
<td class="description last">An array of {obj: [openpgp_msg_publickey]}
-public keys to be used to encrypt the message</td>
</tr>
<tr>
<td class="name"><code>messagetext</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">message text to encrypt</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 358
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
a binary string representation of the message
which can be OpenPGP armored
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="write_signed_and_encrypted_message"><span class="type-signature">&lt;inner> </span>write_signed_and_encrypted_message<span class="signature">(privatekey, publickeys, messagetext)</span><span class="type-signature"> &rarr; {String}</span></h4>
</dt>
<dd>
<div class="description">
creates a binary string representation of an encrypted and signed message.
The message will be encrypted with the public keys specified and signed
with the specified private key.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>privatekey</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">{obj: [openpgp_msg_privatekey]} Private key
to be used to sign the message</td>
</tr>
<tr>
<td class="name"><code>publickeys</code></td>
<td class="type">
<span class="param-type">Object[]</span>
</td>
<td class="description last">An arraf of {obj: [openpgp_msg_publickey]}
- public keys to be used to encrypt the message</td>
</tr>
<tr>
<td class="name"><code>messagetext</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">message text to encrypt and sign</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 301
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
a binary string representation of the message which
can be OpenPGP armored
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="write_signed_message"><span class="type-signature">&lt;inner> </span>write_signed_message<span class="signature">(privatekey, messagetext)</span><span class="type-signature"> &rarr; {Object}</span></h4>
</dt>
<dd>
<div class="description">
creates a binary string representation a signed message.
The message will be signed with the specified private key.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>privatekey</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">{obj: [openpgp_msg_privatekey]}
- the private key to be used to sign the message</td>
</tr>
<tr>
<td class="name"><code>messagetext</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">message text to sign</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.js.html">openpgp.js</a>, line 402
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
{Object: text [String]}, openpgp: {String} a binary
string representation of the message which can be OpenPGP
armored(openpgp) and a text representation of the message (text).
This can be directly used to OpenPGP armor the message
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="_openpgp_packet.html">_openpgp_packet</a></li><li><a href="JXG.Util.html">Util</a></li><li><a href="openpgp.html">openpgp</a></li><li><a href="openpgp_config.html">openpgp_config</a></li><li><a href="openpgp_keyring.html">openpgp_keyring</a></li><li><a href="openpgp_msg_message.html">openpgp_msg_message</a></li><li><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></li><li><a href="openpgp_msg_publickey.html">openpgp_msg_publickey</a></li><li><a href="openpgp_packet_compressed.html">openpgp_packet_compressed</a></li><li><a href="openpgp_packet_encrypteddata.html">openpgp_packet_encrypteddata</a></li><li><a href="openpgp_packet_encryptedintegrityprotecteddata.html">openpgp_packet_encryptedintegrityprotecteddata</a></li><li><a href="openpgp_packet_encryptedsessionkey.html">openpgp_packet_encryptedsessionkey</a></li><li><a href="openpgp_packet_keymaterial.html">openpgp_packet_keymaterial</a></li><li><a href="openpgp_packet_literaldata.html">openpgp_packet_literaldata</a></li><li><a href="openpgp_packet_marker.html">openpgp_packet_marker</a></li><li><a href="openpgp_packet_modificationdetectioncode.html">openpgp_packet_modificationdetectioncode</a></li><li><a href="openpgp_packet_onepasssignature.html">openpgp_packet_onepasssignature</a></li><li><a href="openpgp_packet_signature.html">openpgp_packet_signature</a></li><li><a href="openpgp_packet_userattribute.html">openpgp_packet_userattribute</a></li><li><a href="openpgp_packet_userid.html">openpgp_packet_userid</a></li><li><a href="openpgp_type_keyid.html">openpgp_type_keyid</a></li><li><a href="openpgp_type_mpi.html">openpgp_type_mpi</a></li><li><a href="openpgp_type_s2k.html">openpgp_type_s2k</a></li></ul><h3>Global</h3><ul><li><a href="global.html#bin2str">bin2str</a></li><li><a href="global.html#calc_checksum">calc_checksum</a></li><li><a href="global.html#crc_table">crc_table</a></li><li><a href="global.html#decode_utf8">decode_utf8</a></li><li><a href="global.html#encode_utf8">encode_utf8</a></li><li><a href="global.html#get_hashAlgorithmString">get_hashAlgorithmString</a></li><li><a href="global.html#getCheckSum">getCheckSum</a></li><li><a href="global.html#getPGPMessageType">getPGPMessageType</a></li><li><a href="global.html#hash_headers">hash_headers</a></li><li><a href="global.html#hex2bin">hex2bin</a></li><li><a href="global.html#hexidump">hexidump</a></li><li><a href="global.html#hexstrdump">hexstrdump</a></li><li><a href="global.html#MD5">MD5</a></li><li><a href="global.html#openpgp_cfb_decrypt">openpgp_cfb_decrypt</a></li><li><a href="global.html#openpgp_cfb_encrypt">openpgp_cfb_encrypt</a></li><li><a href="global.html#openpgp_cfb_mdc">openpgp_cfb_mdc</a></li><li><a href="global.html#openpgp_crypto_asymetricDecrypt">openpgp_crypto_asymetricDecrypt</a></li><li><a href="global.html#openpgp_crypto_asymetricEncrypt">openpgp_crypto_asymetricEncrypt</a></li><li><a href="global.html#openpgp_crypto_generateKeyPair">openpgp_crypto_generateKeyPair</a></li><li><a href="global.html#openpgp_crypto_generateSessionKey">openpgp_crypto_generateSessionKey</a></li><li><a href="global.html#openpgp_crypto_getHashByteLength">openpgp_crypto_getHashByteLength</a></li><li><a href="global.html#openpgp_crypto_getPrefixRandom">openpgp_crypto_getPrefixRandom</a></li><li><a href="global.html#openpgp_crypto_getPseudoRandom">openpgp_crypto_getPseudoRandom</a></li><li><a href="global.html#openpgp_crypto_getRandomBigInteger">openpgp_crypto_getRandomBigInteger</a></li><li><a href="global.html#openpgp_crypto_getRandomBytes">openpgp_crypto_getRandomBytes</a></li><li><a href="global.html#openpgp_crypto_getSecureRandom">openpgp_crypto_getSecureRandom</a></li><li><a href="global.html#openpgp_crypto_hashData">openpgp_crypto_hashData</a></li><li><a href="global.html#openpgp_crypto_MDCSystemBytes">openpgp_crypto_MDCSystemBytes</a></li><li><a href="global.html#openpgp_crypto_signData">openpgp_crypto_signData</a></li><li><a href="global.html#openpgp_crypto_symmetricDecrypt">openpgp_crypto_symmetricDecrypt</a></li><li><a href="global.html#openpgp_crypto_symmetricEncrypt">openpgp_crypto_symmetricEncrypt</a></li><li><a href="global.html#openpgp_crypto_verifySignature">openpgp_crypto_verifySignature</a></li><li><a href="global.html#openpgp_encoding_armor">openpgp_encoding_armor</a></li><li><a href="global.html#openpgp_encoding_armor_addheader">openpgp_encoding_armor_addheader</a></li><li><a href="global.html#openpgp_encoding_base64_decode">openpgp_encoding_base64_decode</a></li><li><a href="global.html#openpgp_encoding_base64_encode">openpgp_encoding_base64_encode</a></li><li><a href="global.html#openpgp_encoding_deArmor">openpgp_encoding_deArmor</a></li><li><a href="global.html#openpgp_encoding_eme_pkcs1_decode">openpgp_encoding_eme_pkcs1_decode</a></li><li><a href="global.html#openpgp_encoding_eme_pkcs1_encode">openpgp_encoding_eme_pkcs1_encode</a></li><li><a href="global.html#openpgp_encoding_emsa_pkcs1_decode">openpgp_encoding_emsa_pkcs1_decode</a></li><li><a href="global.html#openpgp_encoding_emsa_pkcs1_encode">openpgp_encoding_emsa_pkcs1_encode</a></li><li><a href="global.html#openpgp_encoding_html_encode">openpgp_encoding_html_encode</a></li><li><a href="global.html#print_debug">print_debug</a></li><li><a href="global.html#print_debug_hexstr_dump">print_debug_hexstr_dump</a></li><li><a href="global.html#print_error">print_error</a></li><li><a href="global.html#print_info">print_info</a></li><li><a href="global.html#shiftRight">shiftRight</a></li><li><a href="global.html#str2bin">str2bin</a></li><li><a href="global.html#str2Uint8Array">str2Uint8Array</a></li><li><a href="global.html#Uint8Array2str">Uint8Array2str</a></li><li><a href="global.html#util">util</a></li><li><a href="global.html#verifyCheckSum">verifyCheckSum</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.0-dev</a> on Tue Apr 16 2013 10:42:41 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
</body>
</html>