1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Class: OpenSSL::PKey::DH</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
<script language="JavaScript" type="text/javascript">
// <![CDATA[
function toggleSource( id )
{
var elem
var link
if( document.getElementById )
{
elem = document.getElementById( id )
link = document.getElementById( "l_" + id )
}
else if ( document.all )
{
elem = eval( "document.all." + id )
link = eval( "document.all.l_" + id )
}
else
return false;
if( elem.style.display == "block" )
{
elem.style.display = "none"
link.innerHTML = "show source"
}
else
{
elem.style.display = "block"
link.innerHTML = "hide source"
}
}
function openCode( url )
{
window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
}
// ]]>
</script>
</head>
<body>
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
<td class="file-title"><span class="file-title-prefix">Class</span><br />OpenSSL::PKey::DH</td>
<td align="right">
<table cellspacing=0 cellpadding=2>
<tr valign="top">
<td>In:</td>
<td>
<a href="../../../files/lib/net/ssh/util/openssl_rb.html">lib/net/ssh/util/openssl.rb</a>
</td>
</tr>
<tr>
<td>Parent:</td>
<td>
Object
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- banner header -->
<div id="bodyContent">
<div id="content">
<div class="description"><p>
This class is originally defined in the <a
href="../../OpenSSL.html">OpenSSL</a> module. As needed, methods have been
added to it by the <a href="../../Net/SSH.html">Net::SSH</a> module for
convenience in dealing with SSH functionality.
</p>
</div>
<div class="sectiontitle">Methods</div>
<ul>
<li><a href="#M000005">valid?</a></li>
</ul>
<div class="sectiontitle">Public Instance methods</div>
<div class="method">
<div class="title">
<a name="M000005"></a><b>valid?</b>()
</div>
<div class="description">
<p>
Determines whether the pub_key for this key is valid. (This algorithm
lifted more-or-less directly from OpenSSH, dh.c, dh_pub_is_valid.)
</p>
</div>
<div class="sourcecode">
<p class="source-link">[ <a href="javascript:toggleSource('M000005_source')" id="l_M000005_source">show source</a> ]</p>
<div id="M000005_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/net/ssh/util/openssl.rb, line 54</span>
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid?</span>
55: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pub_key</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
56: <span class="ruby-identifier">bits_set</span> = <span class="ruby-value">0</span>
57: <span class="ruby-identifier">pub_key</span>.<span class="ruby-identifier">num_bits</span>.<span class="ruby-identifier">times</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">bits_set</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pub_key</span>.<span class="ruby-identifier">bit_set?</span> <span class="ruby-identifier">i</span> }
58: <span class="ruby-keyword kw">return</span> ( <span class="ruby-identifier">bits_set</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">pub_key</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">p</span> )
59: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
|