Crypt-MatrixSSL

 view release on metacpan or  search on metacpan

ppmhtml/site/lib/Crypt/MatrixSSL.html  view on Meta::CPAN

<p>
</p>
<h3><a name="constants_exported_by_default">CONSTANTS EXPORTED BY DEFAULT</a></h3>
<p>Return code in user validation callback:</p>
<pre>
 $SSL_ALLOW_ANON_CONNECTION</pre>
<p>Max size for message in matrixSslEncode():</p>
<pre>
 $SSL_MAX_PLAINTEXT_LEN</pre>
<p>Flags for matrixSslNewSession():</p>
<pre>
 $SSL_FLAGS_SERVER
 $SSL_FLAGS_CLIENT_AUTH</pre>
<p>Options for matrixSslSetSessionOption():</p>
<pre>
 $SSL_OPTION_DELETE_SESSION</pre>
<p><a href="#matrixssldecode"><code>matrixSslDecode()</code></a> return values:</p>
<pre>
 $SSL_SUCCESS
 $SSL_ERROR
 $SSL_FULL
 $SSL_PARTIAL
 $SSL_SEND_RESPONSE
 $SSL_PROCESS_DATA
 $SSL_ALERT
 $SSL_FILE_NOT_FOUND
 $SSL_MEM_ERROR</pre>
<p><a href="#matrixssldecode"><code>matrixSslDecode()</code></a> alertLevel:</p>
<pre>
 $SSL_ALERT_LEVEL_WARNING
 $SSL_ALERT_LEVEL_FATAL</pre>
<p><a href="#matrixssldecode"><code>matrixSslDecode()</code></a> alertDescription:</p>
<pre>
 $SSL_ALERT_CLOSE_NOTIFY
 $SSL_ALERT_UNEXPECTED_MESSAGE
 $SSL_ALERT_BAD_RECORD_MAC
 $SSL_ALERT_DECOMPRESSION_FAILURE
 $SSL_ALERT_HANDSHAKE_FAILURE
 $SSL_ALERT_NO_CERTIFICATE
 $SSL_ALERT_BAD_CERTIFICATE
 $SSL_ALERT_UNSUPPORTED_CERTIFICATE
 $SSL_ALERT_CERTIFICATE_REVOKED
 $SSL_ALERT_CERTIFICATE_EXPIRED
 $SSL_ALERT_CERTIFICATE_UNKNOWN
 $SSL_ALERT_ILLEGAL_PARAMETER</pre>
<p>
</p>
<h3><a name="hashes_export_by_default">HASHES EXPORT BY DEFAULT</a></h3>
<pre>
 %SSL_alertLevel
 %SSL_alertDescription</pre>
<p>
</p>
<hr />
<h1><a name="functions">FUNCTIONS</a></h1>
<dl>
<dt><strong><a name="matrixssldecode" class="item"><strong>matrixSslDecode</strong>( $ssl, $inBuf, $outBuf, $error, $alertLevel, $alertDescription )</a></strong></dt>

<dd>
<p>$inBuf and $outBuf are usual string scalars, not (sslBuf_t *) as in C interface.</p>
<p>After succesfull decoding one packet, <a href="#matrixssldecode"><code>matrixSslDecode()</code></a> will cut decoded
packet from $inBuf's beginning.</p>
<p>Reply SSL packets or application data will be appended to $outBuf, if any.</p>
<p>To convert error/alert codes into text use exported hashes:</p>
<pre>
 <span class="variable">$SSL_alertDescription</span><span class="operator">{</span> <span class="variable">$error</span> <span class="operator">}</span>
 <span class="variable">$SSL_alertLevel</span><span class="operator">{</span> <span class="variable">$alertLevel</span> <span class="operator">}</span>
 <span class="variable">$SSL_alertDescription</span><span class="operator">{</span> <span class="variable">$alertDescription</span> <span class="operator">}</span>
</pre>
</dd>
<dt><strong><a name="matrixsslencode" class="item"><strong>matrixSslEncode</strong>( $ssl, $inBuf, $outBuf )</a></strong></dt>

<dt><strong><a name="matrixsslencodeclosurealert" class="item"><strong>matrixSslEncodeClosureAlert</strong>( $ssl, $outBuf )</a></strong></dt>

<dt><strong><a name="matrixsslencodeclienthello" class="item"><strong>matrixSslEncodeClientHello</strong>( $ssl, $outBuf, $cipherSuite )</a></strong></dt>

<dt><strong><a name="matrixsslencodehellorequest" class="item"><strong>matrixSslEncodeHelloRequest</strong>( $ssl, $outBuf )</a></strong></dt>

<dd>
<p>$outBuf in all matrixSslEncode* functions is usual string scalar,
not (sslBuf_t *) as in C interface.</p>
<p>Encoded SSL packet will be appended to $outBuf.</p>
<p>If you need to <a href="#matrixsslencode"><code>matrixSslEncode()</code></a> huge $inBuf, then you should split $inBuf
into strings with size &lt;= $SSL_MAX_PLAINTEXT_LEN and call <a href="#matrixsslencode"><code>matrixSslEncode()</code></a>
for each of these strings. If you don't do this <a href="#matrixsslencode"><code>matrixSslEncode()</code></a> will return
one of these errors: $SSL_ERROR, $SSL_FULL or <a href="#matrixssldecode"><code>matrixSslDecode()</code></a> on other side
will return $SSL_ERROR.</p>
</dd>
<dt><strong><a name="matrixsslsetcertvalidator" class="item"><strong>matrixSslSetCertValidator</strong>( $ssl, \&amp;cb, $cb_arg )</a></strong></dt>

<dd>
<p>While interface of this function is same as in C, there some important notes
about perl callback \&amp;cb. Perl callback will be called with two scalar params:
$certInfo and $cb_arg - just like in C.</p>
<p>But $certInfo instead of (sslCertInfo_t *) will contain reference to array
with certificates. Each certificate will be hash in this format:</p>
<pre>
 <span class="string">verified</span>       <span class="operator">=&gt;</span> <span class="variable">$verified</span><span class="operator">,</span>
 <span class="string">notBefore</span>      <span class="operator">=&gt;</span> <span class="variable">$notBefore</span><span class="operator">,</span>
 <span class="string">notAfter</span>       <span class="operator">=&gt;</span> <span class="variable">$notAfter</span><span class="operator">,</span>
 <span class="string">subjectAltName</span> <span class="operator">=&gt;</span> <span class="operator">{</span>
                <span class="string">dns</span>             <span class="operator">=&gt;</span> <span class="variable">$dns</span><span class="operator">,</span>
                <span class="string">uri</span>             <span class="operator">=&gt;</span> <span class="variable">$uri</span><span class="operator">,</span>
                <span class="string">email</span>           <span class="operator">=&gt;</span> <span class="variable">$email</span><span class="operator">,</span>
                <span class="operator">}</span><span class="operator">,</span>
 <span class="string">subject</span>        <span class="operator">=&gt;</span> <span class="operator">{</span>
                <span class="string">country</span>         <span class="operator">=&gt;</span> <span class="variable">$country</span><span class="operator">,</span>
                <span class="string">state</span>           <span class="operator">=&gt;</span> <span class="variable">$state</span><span class="operator">,</span>
                <span class="string">locality</span>        <span class="operator">=&gt;</span> <span class="variable">$locality</span><span class="operator">,</span>
                <span class="string">organization</span>    <span class="operator">=&gt;</span> <span class="variable">$organization</span><span class="operator">,</span>
                <span class="string">orgUnit</span>         <span class="operator">=&gt;</span> <span class="variable">$orgUnit</span><span class="operator">,</span>
                <span class="string">commonName</span>      <span class="operator">=&gt;</span> <span class="variable">$commonName</span><span class="operator">,</span>
                <span class="operator">}</span><span class="operator">,</span>
 <span class="string">issuer</span>         <span class="operator">=&gt;</span> <span class="operator">{</span>
                <span class="string">country</span>         <span class="operator">=&gt;</span> <span class="variable">$country</span><span class="operator">,</span>
                <span class="string">state</span>           <span class="operator">=&gt;</span> <span class="variable">$state</span><span class="operator">,</span>
                <span class="string">locality</span>        <span class="operator">=&gt;</span> <span class="variable">$locality</span><span class="operator">,</span>
                <span class="string">organization</span>    <span class="operator">=&gt;</span> <span class="variable">$organization</span><span class="operator">,</span>
                <span class="string">orgUnit</span>         <span class="operator">=&gt;</span> <span class="variable">$orgUnit</span><span class="operator">,</span>
                <span class="string">commonName</span>      <span class="operator">=&gt;</span> <span class="variable">$commonName</span><span class="operator">,</span>
                <span class="operator">}</span><span class="operator">,</span>



( run in 1.859 second using v1.01-cache-2.11-cpan-d8267643d1d )