python-nss-docs/nss.nss.SecItem-class.html

900 строки
33 KiB
HTML

<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>nss.nss.SecItem</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="nss-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<span class="breadcrumbs">
<a href="nss-module.html">Package&nbsp;nss</a> ::
<a href="nss.nss-module.html">Module&nbsp;nss</a> ::
Class&nbsp;SecItem
</span>
</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>]&nbsp;|&nbsp;<a href="nss.nss.SecItem-class.html"
target="_top">no&nbsp;frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<!-- ==================== TYPE DESCRIPTION ==================== -->
<h1 class="epydoc">type SecItem</h1><p class="nomargin-top"></p>
<pre class="base-tree">
object --+
|
<strong class="uidshort">SecItem</strong>
</pre>
<hr />
<p>SecItem(data=None, type=siBuffer, ascii=False)</p>
<p>A SecItem is a block of binary data. It contains the data, a count of
the number of octets in the data and optionally a type describing the
contents of the data. SecItem's are used throughout NSS to pass blocks
of binary data back and forth. Because the binary data is often DER
(Distinguished Encoding Rule) ASN.1 data the data is often referred to
as 'der'.</p>
<p>SecItem's are often returned by NSS functions.</p>
<p>You can create and initialize a SecItem yourself by passing the data
to the SecItem constructor. If you do initialize the data you may either
pass binary data or text (when ascii == True). When you pass ascii data
it will be interpreted as base64 encoded binary data. The base64 text may
optionally be wrapped inside PEM delimiters, but PEM format is not required.</p>
<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Instance Methods</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-InstanceMethods"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__eq__"></a><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x==y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__ge__"></a><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x&gt;=y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__getitem__"></a><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x[y]</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#__getslice__" class="summary-sig-name">__getslice__</a>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">i</span>,
<span class="summary-sig-arg">j</span>)</span><br />
x[i:j]</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__gt__"></a><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x&gt;y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">type</span>=<span class="summary-sig-default">siBuffer</span>,
<span class="summary-sig-arg">ascii</span>=<span class="summary-sig-default">False</span>)</span><br />
x.__init__(...) initializes x; see help(type(x)) for signature</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__le__"></a><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x&lt;=y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__len__"></a><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span><br />
len(x)</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__lt__"></a><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x&lt;y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="__ne__"></a><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,
<span class="summary-sig-arg">y</span>)</span><br />
x!=y</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">a new object with type S, a subtype of T</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
<span class="summary-sig-arg">S</span>,
<span class="summary-sig-arg">...</span>)</span></td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">x</span>)</span><br />
str(x)</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">string or list of strings</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#der_to_hex" class="summary-sig-name">der_to_hex</a>(<span class="summary-sig-arg">octets_per_line</span>=<span class="summary-sig-default">0</span>,
<span class="summary-sig-arg">separator</span>=<span class="summary-sig-default">':'</span>)</span><br />
Interpret the SecItem as containing DER encoded data consisting
of a &lt;type,length,value&gt; triplet (e.g.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">string)</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#format" class="summary-sig-name">format</a>(<span class="summary-sig-arg">level</span>=<span class="summary-sig-default">0</span>,
<span class="summary-sig-arg">indent</span>=<span class="summary-sig-default">' '</span>)</span><br />
This is equivalent to:
indented_format(obj.format_lines()) on an object providing a format_lines() method.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">[(level, string),...]</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#format_lines" class="summary-sig-name">format_lines</a>(<span class="summary-sig-arg">level</span>=<span class="summary-sig-default">0</span>)</span><br />
Formats the object into a sequence of lines with indent level
information.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">int or long</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a name="get_integer"></a><span class="summary-sig-name">get_integer</span>()</span><br />
If the SecItem contains an ASN.1 integer in DER format return
a Python integer (or long)</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">(obj, ...)</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#get_oid_sequence" class="summary-sig-name">get_oid_sequence</a>(<span class="summary-sig-arg">repr_kind</span>=<span class="summary-sig-default">AsString</span>)</span><br />
Return a tuple of OID's according the representation kind.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">string or list of strings</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#to_base64" class="summary-sig-name">to_base64</a>(<span class="summary-sig-arg">chars_per_line</span>=<span class="summary-sig-default">64</span>,
<span class="summary-sig-arg">pem_type</span>=<span class="summary-sig-default"></span>)</span><br />
Format the binary data in the SecItem as base64 string(s).</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">string or list of strings</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nss.nss.SecItem-class.html#to_hex" class="summary-sig-name">to_hex</a>(<span class="summary-sig-arg">octets_per_line</span>=<span class="summary-sig-default">0</span>,
<span class="summary-sig-arg">separator</span>=<span class="summary-sig-default">':'</span>)</span><br />
Equivalent to calling data_to_hex(sec_item)</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Properties</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-Properties"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<a name="data"></a><span class="summary-name">data</span><br />
contents of SecItem buffer
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<a name="len"></a><span class="summary-name">len</span><br />
number of octets in SecItem buffer
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<a name="type"></a><span class="summary-name">type</span><br />
the SecItem type (si* constant)
</td>
</tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Method Details</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-MethodDetails"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
</table>
<a name="__getslice__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,
<span class="sig-arg">i</span>,
<span class="sig-arg">j</span>)</span>
<br /><em class="fname">(Slicling operator)</em>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<p>x[i:j]</p>
<p>Use of negative indices is not supported.</p>
<dl class="fields">
</dl>
</td></tr></table>
</div>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>,
<span class="sig-arg">type</span>=<span class="sig-default">siBuffer</span>,
<span class="sig-arg">ascii</span>=<span class="sig-default">False</span>)</span>
<br /><em class="fname">(Constructor)</em>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
x.__init__(...) initializes x; see help(type(x)) for signature
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>data</code></strong> (any read buffer compatible object (e.g. buffer or string)) - raw data to initialize from</li>
<li><strong class="pname"><code>type</code></strong> (int) - SECItemType constant (e.g. si*)</li>
<li><strong class="pname"><code>ascii</code></strong> (bool) - If true then data is interpretted as base64 encoded.
A PEM header and footer is permissible, if present the
base64 data will be found inside the PEM delimiters.</li>
</ul></dd>
<dt>Overrides:
object.__init__
</dt>
</dl>
</td></tr></table>
</div>
<a name="__new__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
<span class="sig-arg">S</span>,
<span class="sig-arg">...</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<dl class="fields">
<dt>Returns: a new object with type S, a subtype of T</dt>
<dt>Overrides:
object.__new__
</dt>
</dl>
</td></tr></table>
</div>
<a name="__str__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>
<br /><em class="fname">(Informal representation operator)</em>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
str(x)
<dl class="fields">
<dt>Overrides:
object.__str__
</dt>
</dl>
</td></tr></table>
</div>
<a name="der_to_hex"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">der_to_hex</span>(<span class="sig-arg">octets_per_line</span>=<span class="sig-default">0</span>,
<span class="sig-arg">separator</span>=<span class="sig-default">':'</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
Interpret the SecItem as containing DER encoded data consisting
of a &lt;type,length,value&gt; triplet (e.g. TLV). This function skips
the type and length components and returns the value component as
a hexadecimal string or a list of hexidecimal strings with a
maximum of octets_per_line in each list element. See data_to_hex()
for a more detailed explanation.
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>octets_per_line</code></strong> (integer) - Number of octets formatted on one line, if 0 then
return a single string instead of an array of lines</li>
<li><strong class="pname"><code>separator</code></strong> (string) - String used to seperate each octet
If None it will be as if the empty string had been
passed and no separator will be used.</li>
</ul></dd>
<dt>Returns: string or list of strings</dt>
</dl>
</td></tr></table>
</div>
<a name="format"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">format</span>(<span class="sig-arg">level</span>=<span class="sig-default">0</span>,
<span class="sig-arg">indent</span>=<span class="sig-default">' '</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
This is equivalent to:
indented_format(obj.format_lines()) on an object providing a format_lines() method.
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>level</code></strong> (integer) - Initial indentation level, all subsequent indents are relative
to this starting level.</li>
<li><strong class="pname"><code>indent</code></strong> (string) - string replicated once for each indent level then prepended to output line</li>
</ul></dd>
<dt>Returns: string)</dt>
</dl>
</td></tr></table>
</div>
<a name="format_lines"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">format_lines</span>(<span class="sig-arg">level</span>=<span class="sig-default">0</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<p>Formats the object into a sequence of lines with indent level
information. The return value is a list where each list item is a
tuple. The first item in the tuple is an integer
representing the indentation level for that line. Any remaining items
in the tuple are strings to be output on that line.</p>
<p>The output of this function can be formatted into a single string by
calling <a href="nss.nss-module.html#indented_format" class="link">nss.nss.indented\_format()</a>, e.g.:</p>
<blockquote>
print indented_format(obj.format_lines())</blockquote>
<p>The reason this function returns a tuple as opposed to an single
indented string is to support other text formatting systems such as
GUI's with indentation controls. See <a href="nss.nss-module.html#indented_format" class="link">nss.nss.indented\_format()</a> for a
complete explanation.</p>
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>level</code></strong> (integer) - Initial indentation level, all subsequent indents are relative
to this starting level.</li>
</ul></dd>
<dt>Returns: [(level, string),...]</dt>
</dl>
</td></tr></table>
</div>
<a name="get_oid_sequence"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">get_oid_sequence</span>(<span class="sig-arg">repr_kind</span>=<span class="sig-default">AsString</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
Return a tuple of OID's according the representation kind.
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><p><strong class="pname"><code>repr_kind</code></strong> (RepresentationKind constant) - Specifies what the contents of the returned tuple will be.
May be one of:</p>
<dl class="rst-docutils">
<dt>AsObject</dt>
<dd>Each extended key usage will be a SecItem object embedding
the OID in DER format.</dd>
<dt>AsString</dt>
<dd>Each extended key usage will be a descriptive string.
(e.g. &quot;TLS Web Server Authentication Certificate&quot;)</dd>
<dt>AsDottedDecimal</dt>
<dd>Each extended key usage will be OID rendered as a dotted decimal string.
(e.g. &quot;OID.1.3.6.1.5.5.7.3.1&quot;)</dd>
<dt>AsEnum</dt>
<dd>Each extended key usage will be OID tag enumeration constant (int).
(e.g. nss.SEC_OID_EXT_KEY_USAGE_SERVER_AUTH)</dd>
</dl></li>
</ul></dd>
<dt>Returns: (obj, ...)</dt>
</dl>
</td></tr></table>
</div>
<a name="to_base64"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">to_base64</span>(<span class="sig-arg">chars_per_line</span>=<span class="sig-default">64</span>,
<span class="sig-arg">pem_type</span>=<span class="sig-default"></span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<p>Format the binary data in the SecItem as base64 string(s).
Either a list of strings is returned or a single string.</p>
<p>If chars_per_line is greater than zero then a list of
strings will be returned where each string contains
chars_per_line number of characters (except for the last
string in the list which will contain the remainder of the
characters). Returning a list of &quot;lines&quot; makes it convenient
for a caller to format a block of base64 data with line
wrapping. If chars_per_line is greater than zero indicating
a list result is desired a list is always returned even if
the number of characters would produce only a single line.</p>
<p>If chars_per_line is zero then a single string is returned,
(no line splitting is performed).</p>
<p>Examples:</p>
<p>If data is:</p>
<pre class="rst-literal-block">
c8:94:00:9f:c2:8d:a2:5a:61:92:f2:cd:39:75:73:f4
</pre>
<p>data.to_hex(0) will return the single string:</p>
<pre class="rst-literal-block">
'yJQAn8KNolphkvLNOXVz9A=='
</pre>
<p>data.to_hex(5) will return a list of strings where each string has
a length of 5 (except the last string which may be shorter):</p>
<pre class="rst-literal-block">
[
'yJQAn',
'8KNol',
'phkvL',
'NOXVz',
'9A=='
]
</pre>
<p>If you specify the pem_type optional parameter the return value
will be a list of strings whose first and last strings will be a
PEM header and footer. For example if pem_type='CERTIFICATE'
then the return value will be like this:</p>
<pre class="rst-literal-block">
[
'-----BEGIN CERTIFICATE-----',
'yJQAn8KNolphkvLNOXVz9A=='
'-----END CERTIFICATE-----'
]
</pre>
<p>When a list of strings is returned it is easy to form a single
text block using the line ending of your choice, for example:</p>
<pre class="rst-literal-block">
'\n'.join(data.to_base64())
</pre>
<p>Thus a PEM block can be formed like this:</p>
<pre class="rst-literal-block">
'\n'.join(data.to_base64(pem_type='CERTIFICATE'))
</pre>
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>chars_per_line</code></strong> (integer) - Number of characters formatted on one line, if 0 then
return a single string instead of an array of lines</li>
<li><strong class="pname"><code>pem_type</code></strong> (string) - If supplied the base64 encoded data will be wrapped with
a PEM header and footer whose type is the string.</li>
</ul></dd>
<dt>Returns: string or list of strings</dt>
</dl>
</td></tr></table>
</div>
<a name="to_hex"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">to_hex</span>(<span class="sig-arg">octets_per_line</span>=<span class="sig-default">0</span>,
<span class="sig-arg">separator</span>=<span class="sig-default">':'</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
Equivalent to calling data_to_hex(sec_item)
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>octets_per_line</code></strong> (integer) - Number of octets formatted on one line, if 0 then
return a single string instead of an array of lines</li>
<li><strong class="pname"><code>separator</code></strong> (string) - String used to seperate each octet
If None it will be as if the empty string had been
passed and no separator will be used.</li>
</ul></dd>
<dt>Returns: string or list of strings</dt>
</dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="nss-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
>http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie();
// -->
</script>
</body>
</html>