133 | | <a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">myProxyServerDN</tt> <tt class="py-op">=</tt> <tt class="py-name">myProxyServerDN</tt> </tt> |
134 | | <a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cnHostPfx</tt> <tt class="py-op">=</tt> <tt class="py-name">cnHostPfx</tt> </tt> |
135 | | </div><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt> |
136 | | <a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt> |
137 | | <a name="_HostCheck.__call__"></a><div id="_HostCheck.__call__-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="_HostCheck.__call__-toggle" onclick="return toggle('_HostCheck.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client._HostCheck-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">peerCert</tt><tt class="py-op">,</tt> <tt class="py-param">host</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
138 | | </div><div id="_HostCheck.__call__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_HostCheck.__call__-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-docstring">"""Carry out checks on server ID</tt> </tt> |
139 | | <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> @type peerCert: basestring</tt> </tt> |
140 | | <a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> @param peerCert: MyProxy server host certificate as M2Crypto.X509.X509</tt> </tt> |
141 | | <a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> instance</tt> </tt> |
142 | | <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> @type host: basestring</tt> </tt> |
143 | | <a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> @param host: name of host to check</tt> </tt> |
144 | | <a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
145 | | <a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt> |
146 | | <a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># Globus host certificate has a "host/" prefix - see explanation in</tt> </tt> |
147 | | <a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># __init__.__doc__</tt> </tt> |
148 | | <a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">cnHostPfx</tt> <tt class="py-op">=</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cnHostPfx</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt> \ </tt> |
149 | | <a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cnHostPfx</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt> |
150 | | <a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">cnHostPfx</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host</tt> </tt> |
151 | | <a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt> |
152 | | <a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> |
153 | | <a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Checker</tt><tt class="py-op">.</tt><tt class="py-name">Checker</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method myproxy.client._HostCheck.__call__()=myproxy.client._HostCheck-class.html#__call__"><a title="myproxy.client._HostCheck.__call__" class="py-name" href="#" onclick="return doclink('link-8', '__call__', 'link-8');">__call__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">peerCert</tt><tt class="py-op">,</tt> <tt class="py-name">host</tt><tt class="py-op">=</tt><tt class="py-name">host</tt><tt class="py-op">)</tt> </tt> |
154 | | <a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt> |
155 | | <a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Checker</tt><tt class="py-op">.</tt><tt class="py-name">WrongHost</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt> |
156 | | <a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-comment"># Try match against DN set from MYPROXY_SERVER_DN / config</tt> </tt> |
157 | | <a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># file setting</tt> </tt> |
158 | | <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">peerCertDN</tt> <tt class="py-op">=</tt> <tt class="py-string">'/'</tt><tt class="py-op">+</tt><tt class="py-name">peerCert</tt><tt class="py-op">.</tt><tt class="py-name">get_subject</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">as_text</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">', '</tt><tt class="py-op">,</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt> |
159 | | <a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> </tt> |
160 | | <a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-comment"># If they match drop the exception and return all OK instead</tt> </tt> |
161 | | <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">peerCertDN</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">myProxyServerDN</tt><tt class="py-op">:</tt> </tt> |
162 | | <a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt> |
163 | | <a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt> |
164 | | <a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt> |
165 | | </div></div><a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> </tt> |
166 | | <a name="MyProxyClientError"></a><div id="MyProxyClientError-def"><a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> </tt> |
167 | | <a name="L103"></a><tt class="py-lineno"> 103</tt> <a class="py-toggle" href="#" id="MyProxyClientError-toggle" onclick="return toggle('MyProxyClientError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientError-class.html">MyProxyClientError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
168 | | </div><div id="MyProxyClientError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientError-expanded"><a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-docstring">"""Base exception class for MyProxyClient exceptions"""</tt> </tt> |
169 | | </div><a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> </tt> |
170 | | <a name="MyProxyClientConfigError"></a><div id="MyProxyClientConfigError-def"><a name="L106"></a><tt class="py-lineno"> 106</tt> <a class="py-toggle" href="#" id="MyProxyClientConfigError-toggle" onclick="return toggle('MyProxyClientConfigError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientConfigError-class.html">MyProxyClientConfigError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
171 | | </div><div id="MyProxyClientConfigError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientConfigError-expanded"><a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"> <tt class="py-docstring">"""Error with configuration"""</tt> </tt> |
172 | | </div><a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> </tt> |
173 | | <a name="MyProxyClientGetError"></a><div id="MyProxyClientGetError-def"><a name="L109"></a><tt class="py-lineno"> 109</tt> <a class="py-toggle" href="#" id="MyProxyClientGetError-toggle" onclick="return toggle('MyProxyClientGetError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientGetError-class.html">MyProxyClientGetError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
174 | | </div><div id="MyProxyClientGetError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientGetError-expanded"><a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-docstring">"""Exceptions arising from get request to server"""</tt> </tt> |
175 | | </div><a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> </tt> |
176 | | <a name="MyProxyClientRetrieveError"></a><div id="MyProxyClientRetrieveError-def"><a name="L112"></a><tt class="py-lineno"> 112</tt> <a class="py-toggle" href="#" id="MyProxyClientRetrieveError-toggle" onclick="return toggle('MyProxyClientRetrieveError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientRetrieveError-class.html">MyProxyClientRetrieveError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
177 | | </div><div id="MyProxyClientRetrieveError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientRetrieveError-expanded"><a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-docstring">"""Error recovering a response from MyProxy"""</tt> </tt> |
178 | | </div><a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> </tt> |
179 | | <a name="MyProxyClient"></a><div id="MyProxyClient-def"><a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> </tt> |
180 | | <a name="L116"></a><tt class="py-lineno"> 116</tt> <a class="py-toggle" href="#" id="MyProxyClient-toggle" onclick="return toggle('MyProxyClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html">MyProxyClient</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
181 | | </div><div id="MyProxyClient-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClient-expanded"><a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"> <tt class="py-docstring">"""MyProxy client interface </tt> </tt> |
182 | | <a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
183 | | <a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"><tt class="py-docstring"> Based on protocol definitions in: </tt> </tt> |
184 | | <a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
185 | | <a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"><tt class="py-docstring"> http://grid.ncsa.uiuc.edu/myproxy/protocol/</tt> </tt> |
186 | | <a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
187 | | <a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"><tt class="py-docstring"> @type getCmd: string</tt> </tt> |
188 | | <a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"><tt class="py-docstring"> @cvar getCmd: get command string</tt> </tt> |
189 | | <a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
190 | | <a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt class="py-docstring"> @type infoCmd: string</tt> </tt> |
191 | | <a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> @cvar infoCmd: info command string</tt> </tt> |
192 | | <a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
193 | | <a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt class="py-docstring"> @type destroyCmd: string</tt> </tt> |
194 | | <a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt class="py-docstring"> @cvar destroyCmd: destroy command string</tt> </tt> |
195 | | <a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
196 | | <a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt class="py-docstring"> @type changePassphraseCmd: string</tt> </tt> |
197 | | <a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt class="py-docstring"> @cvar changePassphraseCmd: command string to change cred pass-phrase</tt> </tt> |
198 | | <a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
199 | | <a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt class="py-docstring"> @type storeCmd: string</tt> </tt> |
200 | | <a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt class="py-docstring"> @cvar storeCmd: store command string</tt> </tt> |
201 | | <a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
202 | | <a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt class="py-docstring"> @type _hostCertSubDirPath: string</tt> </tt> |
203 | | <a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt class="py-docstring"> @cvar _hostCertSubDirPath: sub-directory path host certificate (as tuple)</tt> </tt> |
204 | | <a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
205 | | <a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt class="py-docstring"> @type _hostKeySubDirPath: string</tt> </tt> |
206 | | <a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"><tt class="py-docstring"> @cvar _hostKeySubDirPath: sub-directory path to host key (as tuple)</tt> </tt> |
207 | | <a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
208 | | <a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"><tt class="py-docstring"> @type propertyDefaults: tuple</tt> </tt> |
209 | | <a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt class="py-docstring"> @cvar propertyDefaults: sets permissable element names for MyProxy config </tt> </tt> |
210 | | <a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt class="py-docstring"> file</tt> </tt> |
211 | | <a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
212 | | <a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> </tt> |
213 | | <a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Variable myproxy.client.MyProxyClient.getCmd=myproxy.client.MyProxyClient-class.html#getCmd"><a title="myproxy.client.MyProxyClient.getCmd" class="py-name" href="#" onclick="return doclink('link-9', 'getCmd', 'link-9');">getCmd</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
214 | | <a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt class="py-string">COMMAND=0</tt> </tt> |
215 | | <a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
216 | | <a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=%s</tt> </tt> |
217 | | <a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt class="py-string">LIFETIME=%d"""</tt> </tt> |
218 | | <a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> </tt> |
219 | | <a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Variable myproxy.client.MyProxyClient.infoCmd=myproxy.client.MyProxyClient-class.html#infoCmd"><a title="myproxy.client.MyProxyClient.infoCmd" class="py-name" href="#" onclick="return doclink('link-10', 'infoCmd', 'link-10');">infoCmd</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
220 | | <a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt class="py-string">COMMAND=2</tt> </tt> |
221 | | <a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
222 | | <a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=PASSPHRASE</tt> </tt> |
223 | | <a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt class="py-string">LIFETIME=0"""</tt> </tt> |
224 | | <a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"> </tt> |
225 | | <a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Variable myproxy.client.MyProxyClient.destroyCmd=myproxy.client.MyProxyClient-class.html#destroyCmd"><a title="myproxy.client.MyProxyClient.destroyCmd" class="py-name" href="#" onclick="return doclink('link-11', 'destroyCmd', 'link-11');">destroyCmd</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
226 | | <a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-string">COMMAND=3</tt> </tt> |
227 | | <a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
228 | | <a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=PASSPHRASE</tt> </tt> |
229 | | <a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt class="py-string">LIFETIME=0"""</tt> </tt> |
230 | | <a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"> </tt> |
231 | | <a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"> <tt id="link-12" class="py-name" targets="Variable myproxy.client.MyProxyClient.changePassphraseCmd=myproxy.client.MyProxyClient-class.html#changePassphraseCmd"><a title="myproxy.client.MyProxyClient.changePassphraseCmd" class="py-name" href="#" onclick="return doclink('link-12', 'changePassphraseCmd', 'link-12');">changePassphraseCmd</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
232 | | <a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt class="py-string"> COMMAND=4</tt> </tt> |
233 | | <a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt class="py-string"> USERNAME=%s</tt> </tt> |
234 | | <a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt class="py-string"> PASSPHRASE=%s</tt> </tt> |
235 | | <a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt class="py-string"> NEW_PHRASE=%s</tt> </tt> |
236 | | <a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-string"> LIFETIME=0"""</tt> </tt> |
237 | | <a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"> </tt> |
238 | | <a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> <tt id="link-13" class="py-name" targets="Variable myproxy.client.MyProxyClient.storeCmd=myproxy.client.MyProxyClient-class.html#storeCmd"><a title="myproxy.client.MyProxyClient.storeCmd" class="py-name" href="#" onclick="return doclink('link-13', 'storeCmd', 'link-13');">storeCmd</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
239 | | <a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-string">COMMAND=5</tt> </tt> |
240 | | <a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
241 | | <a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=</tt> </tt> |
242 | | <a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"><tt class="py-string">LIFETIME=%d"""</tt> </tt> |
243 | | <a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> </tt> |
244 | | <a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt id="link-14" class="py-name" targets="Variable myproxy.client.MyProxyClient._hostCertSubDirPath=myproxy.client.MyProxyClient-class.html#_hostCertSubDirPath"><a title="myproxy.client.MyProxyClient._hostCertSubDirPath" class="py-name" href="#" onclick="return doclink('link-14', '_hostCertSubDirPath', 'link-14');">_hostCertSubDirPath</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'etc'</tt><tt class="py-op">,</tt> <tt class="py-string">'hostcert.pem'</tt><tt class="py-op">)</tt> </tt> |
245 | | <a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt id="link-15" class="py-name" targets="Variable myproxy.client.MyProxyClient._hostKeySubDirPath=myproxy.client.MyProxyClient-class.html#_hostKeySubDirPath"><a title="myproxy.client.MyProxyClient._hostKeySubDirPath" class="py-name" href="#" onclick="return doclink('link-15', '_hostKeySubDirPath', 'link-15');">_hostKeySubDirPath</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'etc'</tt><tt class="py-op">,</tt> <tt class="py-string">'hostkey.pem'</tt><tt class="py-op">)</tt> </tt> |
246 | | <a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> </tt> |
247 | | <a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-comment"># Work out default location of proxy file if it exists. This is set if a</tt> </tt> |
248 | | <a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># call has been made previously to logon / get-delegation</tt> </tt> |
249 | | <a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-16" class="py-name" targets="Variable myproxy.client.MyProxyClient.defProxyFile=myproxy.client.MyProxyClient-class.html#defProxyFile"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-16', 'defProxyFile', 'link-16');">defProxyFile</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">'win32'</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'proxy'</tt> <tt class="py-keyword">or</tt> \ </tt> |
250 | | <a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'linux2'</tt><tt class="py-op">,</tt> <tt class="py-string">'darwin'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'/tmp/x509up_u%s'</tt><tt class="py-op">%</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">getuid</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> \ </tt> |
251 | | <a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"> <tt class="py-keyword">or</tt> <tt class="py-name">None</tt> </tt> |
252 | | <a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"> </tt> |
253 | | <a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"> <tt class="py-comment"># valid configuration property keywords</tt> </tt> |
254 | | <a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-17" class="py-name" targets="Variable myproxy.client.MyProxyClient.propertyDefaults=myproxy.client.MyProxyClient-class.html#propertyDefaults"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-17', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt> |
255 | | <a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"> <tt class="py-string">'hostname'</tt><tt class="py-op">:</tt> <tt class="py-string">'localhost'</tt><tt class="py-op">,</tt> </tt> |
256 | | <a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"> <tt class="py-string">'port'</tt><tt class="py-op">:</tt> <tt class="py-number">7512</tt><tt class="py-op">,</tt> </tt> |
257 | | <a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"> <tt class="py-string">'serverDN'</tt><tt class="py-op">:</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt> |
258 | | <a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"> <tt class="py-string">'serverCNPrefix'</tt><tt class="py-op">:</tt> <tt class="py-string">'host/'</tt><tt class="py-op">,</tt> </tt> |
259 | | <a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"> <tt class="py-string">'openSSLConfFilePath'</tt><tt class="py-op">:</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt> |
260 | | <a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"> <tt class="py-string">'proxyCertMaxLifetime'</tt><tt class="py-op">:</tt> <tt class="py-number">43200</tt><tt class="py-op">,</tt> </tt> |
261 | | <a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"> <tt class="py-string">'proxyCertLifetime'</tt><tt class="py-op">:</tt> <tt class="py-number">43200</tt><tt class="py-op">,</tt> </tt> |
262 | | <a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"> <tt class="py-string">'caCertFilePath'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
263 | | <a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> <tt class="py-string">'caCertDir'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt> </tt> |
264 | | <a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt> |
265 | | <a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"> </tt> |
266 | | <a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt class="py-comment"># Restrict attributes to the above properties, their equivalent </tt> </tt> |
267 | | <a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># protected values + extra OpenSSL config object.</tt> </tt> |
268 | | <a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">__slots__</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-18', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
269 | | <a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt class="py-name">__slots__</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt id="link-19" class="py-name" targets="Variable myproxy.client.MyProxyClient.k=myproxy.client.MyProxyClient-class.html#k"><a title="myproxy.client.MyProxyClient.k" class="py-name" href="#" onclick="return doclink('link-19', 'k', 'link-19');">k</a></tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Variable myproxy.client.MyProxyClient.v=myproxy.client.MyProxyClient-class.html#v"><a title="myproxy.client.MyProxyClient.v" class="py-name" href="#" onclick="return doclink('link-20', 'v', 'link-20');">v</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-21" class="py-name"><a title="myproxy.client.MyProxyClient.k" class="py-name" href="#" onclick="return doclink('link-21', 'k', 'link-19');">k</a></tt><tt class="py-op">,</tt><tt id="link-22" class="py-name"><a title="myproxy.client.MyProxyClient.v" class="py-name" href="#" onclick="return doclink('link-22', 'v', 'link-20');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-23" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-23', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> </tt> |
270 | | <a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'_openSSLConfig'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt> |
271 | | <a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'_cfg'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt> |
272 | | <a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt> |
273 | | <a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt> |
274 | | <a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> </tt> |
275 | | <a name="MyProxyClient.__init__"></a><div id="MyProxyClient.__init__-def"><a name="L211"></a><tt class="py-lineno"> 211</tt> <a class="py-toggle" href="#" id="MyProxyClient.__init__-toggle" onclick="return toggle('MyProxyClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cfgFilePath</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">prop</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
276 | | </div><div id="MyProxyClient.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.__init__-expanded"><a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> <tt class="py-docstring">"""Make any initial settings for client connections to MyProxy</tt> </tt> |
277 | | <a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
278 | | <a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"><tt class="py-docstring"> Settings are held in a dictionary which can be set from **prop,</tt> </tt> |
279 | | <a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"><tt class="py-docstring"> a call to setProperties() or by passing settings in an XML file</tt> </tt> |
280 | | <a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"><tt class="py-docstring"> given by cfgFilePath</tt> </tt> |
281 | | <a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
282 | | <a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-docstring"> @param cfgFilePath: set properties via a configuration file</tt> </tt> |
283 | | <a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-docstring"> @param **prop: set properties via keywords - see </tt> </tt> |
284 | | <a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-docstring"> propertyDefaults class variable for a list of these</tt> </tt> |
285 | | <a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
286 | | <a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"> </tt> |
287 | | <a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> <tt class="py-comment"># Default settings. Nb. '_' - override property methods in order to </tt> </tt> |
288 | | <a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># set defaults</tt> </tt> |
289 | | <a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt id="link-24" class="py-name" targets="Class myproxy.client.MyProxyClient=myproxy.client.MyProxyClient-class.html"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-24', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-25', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
290 | | <a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
291 | | <a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"> </tt> |
292 | | <a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"> <tt class="py-comment"># Configuration file used to get default subject when generating a</tt> </tt> |
293 | | <a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># new proxy certificate request</tt> </tt> |
294 | | <a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Variable myproxy.client.MyProxyClient._openSSLConfig=myproxy.client.MyProxyClient-class.html#_openSSLConfig"><a title="myproxy.client.MyProxyClient._openSSLConfig" class="py-name" href="#" onclick="return doclink('link-26', '_openSSLConfig', 'link-26');">_openSSLConfig</a></tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig" class="py-name" href="#" onclick="return doclink('link-27', 'OpenSSLConfig', 'link-5');">OpenSSLConfig</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
295 | | <a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> </tt> |
296 | | <a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> <tt class="py-comment"># Server host name - take from environment variable if available</tt> </tt> |
297 | | <a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Variable myproxy.client.MyProxyClient.hostname=myproxy.client.MyProxyClient-class.html#hostname"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-28', 'hostname', 'link-28');">hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER'</tt><tt class="py-op">,</tt> </tt> |
298 | | <a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-29', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-30', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">[</tt><tt class="py-string">'hostname'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
299 | | <a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> </tt> |
300 | | <a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-comment"># ... and port number</tt> </tt> |
301 | | <a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Variable myproxy.client.MyProxyClient.port=myproxy.client.MyProxyClient-class.html#port"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-31', 'port', 'link-31');">port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER_PORT'</tt><tt class="py-op">,</tt> </tt> |
302 | | <a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-32', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-33', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">[</tt><tt class="py-string">'port'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
303 | | <a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> </tt> |
304 | | <a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt class="py-comment"># Server Distinguished Name</tt> </tt> |
305 | | <a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Variable myproxy.client.MyProxyClient.serverDN=myproxy.client.MyProxyClient-class.html#serverDN"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-34', 'serverDN', 'link-34');">serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER_DN'</tt><tt class="py-op">,</tt> </tt> |
306 | | <a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-35', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="myproxy.client.MyProxyClient.propertyDefaults" class="py-name" href="#" onclick="return doclink('link-36', 'propertyDefaults', 'link-17');">propertyDefaults</a></tt><tt class="py-op">[</tt><tt class="py-string">'serverDN'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
307 | | <a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> </tt> |
308 | | <a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt class="py-comment"># keyword settings</tt> </tt> |
309 | | <a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prop</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
310 | | <a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
311 | | <a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"> </tt> |
312 | | <a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"> <tt class="py-comment"># If properties file is set any parameters settings in file will</tt> </tt> |
313 | | <a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># override those set by input keyword</tt> </tt> |
314 | | <a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">cfgFilePath</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
315 | | <a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method myproxy.client.MyProxyClient.parseConfig()=myproxy.client.MyProxyClient-class.html#parseConfig"><a title="myproxy.client.MyProxyClient.parseConfig" class="py-name" href="#" onclick="return doclink('link-37', 'parseConfig', 'link-37');">parseConfig</a></tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">=</tt><tt class="py-name">cfgFilePath</tt><tt class="py-op">)</tt> </tt> |
316 | | </div><a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"> </tt> |
317 | | <a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"> </tt> |
318 | | <a name="MyProxyClient.parseConfig"></a><div id="MyProxyClient.parseConfig-def"><a name="L254"></a><tt class="py-lineno"> 254</tt> <a class="py-toggle" href="#" id="MyProxyClient.parseConfig-toggle" onclick="return toggle('MyProxyClient.parseConfig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#parseConfig">parseConfig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cfg</tt><tt class="py-op">,</tt> <tt class="py-param">section</tt><tt class="py-op">=</tt><tt class="py-string">'DEFAULT'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
319 | | </div><div id="MyProxyClient.parseConfig-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.parseConfig-expanded"><a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-docstring">'''Extract parameters from _cfg config object'''</tt> </tt> |
320 | | <a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> </tt> |
321 | | <a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
322 | | <a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> <tt class="py-name">cfgFilePath</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">)</tt> </tt> |
323 | | <a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Variable myproxy.client.MyProxyClient._cfg=myproxy.client.MyProxyClient-class.html#_cfg"><a title="myproxy.client.MyProxyClient._cfg" class="py-name" href="#" onclick="return doclink('link-38', '_cfg', 'link-38');">_cfg</a></tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name" targets="Class myproxy.client.CaseSensitiveConfigParser=myproxy.client.CaseSensitiveConfigParser-class.html"><a title="myproxy.client.CaseSensitiveConfigParser" class="py-name" href="#" onclick="return doclink('link-39', 'CaseSensitiveConfigParser', 'link-39');">CaseSensitiveConfigParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
324 | | <a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="myproxy.client.MyProxyClient._cfg" class="py-name" href="#" onclick="return doclink('link-40', '_cfg', 'link-38');">_cfg</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method myproxy.utils.openssl.OpenSSLConfig.read()=myproxy.utils.openssl.OpenSSLConfig-class.html#read"><a title="myproxy.utils.openssl.OpenSSLConfig.read" class="py-name" href="#" onclick="return doclink('link-41', 'read', 'link-41');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">cfgFilePath</tt><tt class="py-op">)</tt> </tt> |
325 | | <a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
326 | | <a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-name">cfgFilePath</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
327 | | <a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="myproxy.client.MyProxyClient._cfg" class="py-name" href="#" onclick="return doclink('link-42', '_cfg', 'link-38');">_cfg</a></tt> <tt class="py-op">=</tt> <tt class="py-name">cfg</tt> </tt> |
328 | | <a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> </tt> |
329 | | <a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="myproxy.client.MyProxyClient._cfg" class="py-name" href="#" onclick="return doclink('link-43', '_cfg', 'link-38');">_cfg</a></tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-name">section</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
330 | | <a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
331 | | </div><a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> </tt> |
332 | | <a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"> <tt class="py-comment"># Get/Set Property methods</tt> </tt> |
333 | | <a name="MyProxyClient._getHostname"></a><div id="MyProxyClient._getHostname-def"><a name="L269"></a><tt class="py-lineno"> 269</tt> <a class="py-toggle" href="#" id="MyProxyClient._getHostname-toggle" onclick="return toggle('MyProxyClient._getHostname');">-</a><tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getHostname">_getHostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
334 | | </div><div id="MyProxyClient._getHostname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getHostname-expanded"><a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Variable myproxy.client.MyProxyClient._hostname=myproxy.client.MyProxyClient-class.html#_hostname"><a title="myproxy.client.MyProxyClient._hostname" class="py-name" href="#" onclick="return doclink('link-44', '_hostname', 'link-44');">_hostname</a></tt> </tt> |
335 | | </div><a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"> </tt> |
336 | | <a name="MyProxyClient._setHostname"></a><div id="MyProxyClient._setHostname-def"><a name="L272"></a><tt class="py-lineno"> 272</tt> <a class="py-toggle" href="#" id="MyProxyClient._setHostname-toggle" onclick="return toggle('MyProxyClient._setHostname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setHostname">_setHostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
337 | | </div><div id="MyProxyClient._setHostname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setHostname-expanded"><a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
338 | | <a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for hostname "</tt> </tt> |
339 | | <a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
340 | | <a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="myproxy.client.MyProxyClient._hostname" class="py-name" href="#" onclick="return doclink('link-45', '_hostname', 'link-44');">_hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
341 | | </div><a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"> </tt> |
342 | | <a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt id="link-46" class="py-name"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-46', 'hostname', 'link-28');">hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-47" class="py-name" targets="Method myproxy.client.MyProxyClient._getHostname()=myproxy.client.MyProxyClient-class.html#_getHostname"><a title="myproxy.client.MyProxyClient._getHostname" class="py-name" href="#" onclick="return doclink('link-47', '_getHostname', 'link-47');">_getHostname</a></tt><tt class="py-op">,</tt> </tt> |
343 | | <a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-48" class="py-name" targets="Method myproxy.client.MyProxyClient._setHostname()=myproxy.client.MyProxyClient-class.html#_setHostname"><a title="myproxy.client.MyProxyClient._setHostname" class="py-name" href="#" onclick="return doclink('link-48', '_setHostname', 'link-48');">_setHostname</a></tt><tt class="py-op">,</tt> </tt> |
344 | | <a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"hostname of MyProxy server"</tt><tt class="py-op">)</tt> </tt> |
345 | | <a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> </tt> |
346 | | <a name="MyProxyClient._getPort"></a><div id="MyProxyClient._getPort-def"><a name="L282"></a><tt class="py-lineno"> 282</tt> <a class="py-toggle" href="#" id="MyProxyClient._getPort-toggle" onclick="return toggle('MyProxyClient._getPort');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getPort">_getPort</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
347 | | </div><div id="MyProxyClient._getPort-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getPort-expanded"><a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Variable myproxy.client.MyProxyClient._port=myproxy.client.MyProxyClient-class.html#_port"><a title="myproxy.client.MyProxyClient._port" class="py-name" href="#" onclick="return doclink('link-49', '_port', 'link-49');">_port</a></tt> </tt> |
348 | | </div><a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> </tt> |
349 | | <a name="MyProxyClient._setPort"></a><div id="MyProxyClient._setPort-def"><a name="L285"></a><tt class="py-lineno"> 285</tt> <a class="py-toggle" href="#" id="MyProxyClient._setPort-toggle" onclick="return toggle('MyProxyClient._setPort');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setPort">_setPort</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
350 | | </div><div id="MyProxyClient._setPort-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setPort-expanded"><a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
351 | | <a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="myproxy.client.MyProxyClient._port" class="py-name" href="#" onclick="return doclink('link-50', '_port', 'link-49');">_port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
352 | | <a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
353 | | <a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="myproxy.client.MyProxyClient._port" class="py-name" href="#" onclick="return doclink('link-51', '_port', 'link-49');">_port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
354 | | <a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
355 | | <a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for port attribute"</tt><tt class="py-op">)</tt> </tt> |
356 | | </div><a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> </tt> |
357 | | <a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-52', 'port', 'link-31');">port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-53" class="py-name" targets="Method myproxy.client.MyProxyClient._getPort()=myproxy.client.MyProxyClient-class.html#_getPort"><a title="myproxy.client.MyProxyClient._getPort" class="py-name" href="#" onclick="return doclink('link-53', '_getPort', 'link-53');">_getPort</a></tt><tt class="py-op">,</tt> </tt> |
358 | | <a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name" targets="Method myproxy.client.MyProxyClient._setPort()=myproxy.client.MyProxyClient-class.html#_setPort"><a title="myproxy.client.MyProxyClient._setPort" class="py-name" href="#" onclick="return doclink('link-54', '_setPort', 'link-54');">_setPort</a></tt><tt class="py-op">,</tt> </tt> |
359 | | <a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Port number for MyProxy server"</tt><tt class="py-op">)</tt> </tt> |
360 | | <a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> </tt> |
361 | | <a name="MyProxyClient._getServerDN"></a><div id="MyProxyClient._getServerDN-def"><a name="L297"></a><tt class="py-lineno"> 297</tt> <a class="py-toggle" href="#" id="MyProxyClient._getServerDN-toggle" onclick="return toggle('MyProxyClient._getServerDN');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getServerDN">_getServerDN</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
362 | | </div><div id="MyProxyClient._getServerDN-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getServerDN-expanded"><a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Variable myproxy.client.MyProxyClient._serverDN=myproxy.client.MyProxyClient-class.html#_serverDN"><a title="myproxy.client.MyProxyClient._serverDN" class="py-name" href="#" onclick="return doclink('link-55', '_serverDN', 'link-55');">_serverDN</a></tt> </tt> |
363 | | </div><a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> </tt> |
364 | | <a name="MyProxyClient._setServerDN"></a><div id="MyProxyClient._setServerDN-def"><a name="L300"></a><tt class="py-lineno"> 300</tt> <a class="py-toggle" href="#" id="MyProxyClient._setServerDN-toggle" onclick="return toggle('MyProxyClient._setServerDN');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setServerDN">_setServerDN</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
365 | | </div><div id="MyProxyClient._setServerDN-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setServerDN-expanded"><a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
366 | | <a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for serverDN "</tt> </tt> |
367 | | <a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
368 | | <a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="myproxy.client.MyProxyClient._serverDN" class="py-name" href="#" onclick="return doclink('link-56', '_serverDN', 'link-55');">_serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
369 | | </div><a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> </tt> |
370 | | <a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt id="link-57" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-57', 'serverDN', 'link-34');">serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-58" class="py-name" targets="Method myproxy.client.MyProxyClient._getServerDN()=myproxy.client.MyProxyClient-class.html#_getServerDN"><a title="myproxy.client.MyProxyClient._getServerDN" class="py-name" href="#" onclick="return doclink('link-58', '_getServerDN', 'link-58');">_getServerDN</a></tt><tt class="py-op">,</tt> </tt> |
371 | | <a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-59" class="py-name" targets="Method myproxy.client.MyProxyClient._setServerDN()=myproxy.client.MyProxyClient-class.html#_setServerDN"><a title="myproxy.client.MyProxyClient._setServerDN" class="py-name" href="#" onclick="return doclink('link-59', '_setServerDN', 'link-59');">_setServerDN</a></tt><tt class="py-op">,</tt> </tt> |
372 | | <a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Distinguished Name for MyProxy Server "</tt> </tt> |
373 | | <a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> <tt class="py-string">"Certificate"</tt><tt class="py-op">)</tt> </tt> |
374 | | <a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"> </tt> |
375 | | <a name="MyProxyClient._getServerCNPrefix"></a><div id="MyProxyClient._getServerCNPrefix-def"><a name="L311"></a><tt class="py-lineno"> 311</tt> <a class="py-toggle" href="#" id="MyProxyClient._getServerCNPrefix-toggle" onclick="return toggle('MyProxyClient._getServerCNPrefix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getServerCNPrefix">_getServerCNPrefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
376 | | </div><div id="MyProxyClient._getServerCNPrefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getServerCNPrefix-expanded"><a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Variable myproxy.client.MyProxyClient._serverCNPrefix=myproxy.client.MyProxyClient-class.html#_serverCNPrefix"><a title="myproxy.client.MyProxyClient._serverCNPrefix" class="py-name" href="#" onclick="return doclink('link-60', '_serverCNPrefix', 'link-60');">_serverCNPrefix</a></tt> </tt> |
377 | | </div><a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"> </tt> |
378 | | <a name="MyProxyClient._setServerCNPrefix"></a><div id="MyProxyClient._setServerCNPrefix-def"><a name="L314"></a><tt class="py-lineno"> 314</tt> <a class="py-toggle" href="#" id="MyProxyClient._setServerCNPrefix-toggle" onclick="return toggle('MyProxyClient._setServerCNPrefix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setServerCNPrefix">_setServerCNPrefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
379 | | </div><div id="MyProxyClient._setServerCNPrefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setServerCNPrefix-expanded"><a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
380 | | <a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for serverCNPrefix "</tt> </tt> |
381 | | <a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
382 | | <a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="myproxy.client.MyProxyClient._serverCNPrefix" class="py-name" href="#" onclick="return doclink('link-61', '_serverCNPrefix', 'link-60');">_serverCNPrefix</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
383 | | </div><a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> </tt> |
384 | | <a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt id="link-62" class="py-name" targets="Variable myproxy.client.MyProxyClient.serverCNPrefix=myproxy.client.MyProxyClient-class.html#serverCNPrefix"><a title="myproxy.client.MyProxyClient.serverCNPrefix" class="py-name" href="#" onclick="return doclink('link-62', 'serverCNPrefix', 'link-62');">serverCNPrefix</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-63" class="py-name" targets="Method myproxy.client.MyProxyClient._getServerCNPrefix()=myproxy.client.MyProxyClient-class.html#_getServerCNPrefix"><a title="myproxy.client.MyProxyClient._getServerCNPrefix" class="py-name" href="#" onclick="return doclink('link-63', '_getServerCNPrefix', 'link-63');">_getServerCNPrefix</a></tt><tt class="py-op">,</tt> </tt> |
385 | | <a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-64" class="py-name" targets="Method myproxy.client.MyProxyClient._setServerCNPrefix()=myproxy.client.MyProxyClient-class.html#_setServerCNPrefix"><a title="myproxy.client.MyProxyClient._setServerCNPrefix" class="py-name" href="#" onclick="return doclink('link-64', '_setServerCNPrefix', 'link-64');">_setServerCNPrefix</a></tt><tt class="py-op">,</tt> </tt> |
386 | | <a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Prefix if any for Server Certificate DN "</tt> </tt> |
387 | | <a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-string">"Common Name e.g. 'host/'"</tt><tt class="py-op">)</tt> </tt> |
388 | | <a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> </tt> |
389 | | <a name="MyProxyClient._getOpenSSLConfFilePath"></a><div id="MyProxyClient._getOpenSSLConfFilePath-def"><a name="L325"></a><tt class="py-lineno"> 325</tt> <a class="py-toggle" href="#" id="MyProxyClient._getOpenSSLConfFilePath-toggle" onclick="return toggle('MyProxyClient._getOpenSSLConfFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getOpenSSLConfFilePath">_getOpenSSLConfFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
390 | | </div><div id="MyProxyClient._getOpenSSLConfFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getOpenSSLConfFilePath-expanded"><a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Variable myproxy.client.MyProxyClient._openSSLConfFilePath=myproxy.client.MyProxyClient-class.html#_openSSLConfFilePath"><a title="myproxy.client.MyProxyClient._openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-65', '_openSSLConfFilePath', 'link-65');">_openSSLConfFilePath</a></tt> </tt> |
391 | | </div><a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> </tt> |
392 | | <a name="MyProxyClient._setOpenSSLConfFilePath"></a><div id="MyProxyClient._setOpenSSLConfFilePath-def"><a name="L328"></a><tt class="py-lineno"> 328</tt> <a class="py-toggle" href="#" id="MyProxyClient._setOpenSSLConfFilePath-toggle" onclick="return toggle('MyProxyClient._setOpenSSLConfFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setOpenSSLConfFilePath">_setOpenSSLConfFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
393 | | </div><div id="MyProxyClient._setOpenSSLConfFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setOpenSSLConfFilePath-expanded"><a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
394 | | <a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for "</tt> </tt> |
395 | | <a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> <tt class="py-string">"openSSLConfFilePath attribute"</tt><tt class="py-op">)</tt> </tt> |
396 | | <a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-66', '_openSSLConfFilePath', 'link-65');">_openSSLConfFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
397 | | <a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfig" class="py-name" href="#" onclick="return doclink('link-67', '_openSSLConfig', 'link-26');">_openSSLConfig</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Variable myproxy.utils.openssl.OpenSSLConfig.filePath=myproxy.utils.openssl.OpenSSLConfig-class.html#filePath"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-68', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-69', '_openSSLConfFilePath', 'link-65');">_openSSLConfFilePath</a></tt> </tt> |
398 | | <a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfig" class="py-name" href="#" onclick="return doclink('link-70', '_openSSLConfig', 'link-26');">_openSSLConfig</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.read" class="py-name" href="#" onclick="return doclink('link-71', 'read', 'link-41');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
399 | | </div><a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> </tt> |
400 | | <a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt id="link-72" class="py-name" targets="Variable myproxy.client.MyProxyClient.openSSLConfFilePath=myproxy.client.MyProxyClient-class.html#openSSLConfFilePath"><a title="myproxy.client.MyProxyClient.openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-72', 'openSSLConfFilePath', 'link-72');">openSSLConfFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-73" class="py-name" targets="Method myproxy.client.MyProxyClient._getOpenSSLConfFilePath()=myproxy.client.MyProxyClient-class.html#_getOpenSSLConfFilePath"><a title="myproxy.client.MyProxyClient._getOpenSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-73', '_getOpenSSLConfFilePath', 'link-73');">_getOpenSSLConfFilePath</a></tt><tt class="py-op">,</tt> </tt> |
401 | | <a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-74" class="py-name" targets="Method myproxy.client.MyProxyClient._setOpenSSLConfFilePath()=myproxy.client.MyProxyClient-class.html#_setOpenSSLConfFilePath"><a title="myproxy.client.MyProxyClient._setOpenSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-74', '_setOpenSSLConfFilePath', 'link-74');">_setOpenSSLConfFilePath</a></tt><tt class="py-op">,</tt> </tt> |
402 | | <a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"file path for OpenSSL config file"</tt><tt class="py-op">)</tt> </tt> |
403 | | <a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> </tt> |
404 | | <a name="MyProxyClient._getProxyCertMaxLifetime"></a><div id="MyProxyClient._getProxyCertMaxLifetime-def"><a name="L340"></a><tt class="py-lineno"> 340</tt> <a class="py-toggle" href="#" id="MyProxyClient._getProxyCertMaxLifetime-toggle" onclick="return toggle('MyProxyClient._getProxyCertMaxLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getProxyCertMaxLifetime">_getProxyCertMaxLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
405 | | </div><div id="MyProxyClient._getProxyCertMaxLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getProxyCertMaxLifetime-expanded"><a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Variable myproxy.client.MyProxyClient._proxyCertMaxLifetime=myproxy.client.MyProxyClient-class.html#_proxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient._proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-75', '_proxyCertMaxLifetime', 'link-75');">_proxyCertMaxLifetime</a></tt> </tt> |
406 | | </div><a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> </tt> |
407 | | <a name="MyProxyClient._setProxyCertMaxLifetime"></a><div id="MyProxyClient._setProxyCertMaxLifetime-def"><a name="L343"></a><tt class="py-lineno"> 343</tt> <a class="py-toggle" href="#" id="MyProxyClient._setProxyCertMaxLifetime-toggle" onclick="return toggle('MyProxyClient._setProxyCertMaxLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setProxyCertMaxLifetime">_setProxyCertMaxLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
408 | | </div><div id="MyProxyClient._setProxyCertMaxLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setProxyCertMaxLifetime-expanded"><a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
409 | | <a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="myproxy.client.MyProxyClient._proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-76', '_proxyCertMaxLifetime', 'link-75');">_proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
410 | | <a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> </tt> |
411 | | <a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
412 | | <a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="myproxy.client.MyProxyClient._proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-77', '_proxyCertMaxLifetime', 'link-75');">_proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
413 | | <a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
414 | | <a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for proxyCertMaxLifetime "</tt> </tt> |
415 | | <a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
416 | | </div><a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> </tt> |
417 | | <a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt id="link-78" class="py-name" targets="Variable myproxy.client.MyProxyClient.proxyCertMaxLifetime=myproxy.client.MyProxyClient-class.html#proxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient.proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-78', 'proxyCertMaxLifetime', 'link-78');">proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-79" class="py-name" targets="Method myproxy.client.MyProxyClient._getProxyCertMaxLifetime()=myproxy.client.MyProxyClient-class.html#_getProxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient._getProxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-79', '_getProxyCertMaxLifetime', 'link-79');">_getProxyCertMaxLifetime</a></tt><tt class="py-op">,</tt> </tt> |
418 | | <a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-80" class="py-name" targets="Method myproxy.client.MyProxyClient._setProxyCertMaxLifetime()=myproxy.client.MyProxyClient-class.html#_setProxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient._setProxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-80', '_setProxyCertMaxLifetime', 'link-80');">_setProxyCertMaxLifetime</a></tt><tt class="py-op">,</tt> </tt> |
419 | | <a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Default max. lifetime allowed for "</tt> </tt> |
420 | | <a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-string">"Proxy Certificate retrieved - used "</tt> </tt> |
421 | | <a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-string">"by store method"</tt><tt class="py-op">)</tt> </tt> |
422 | | <a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> </tt> |
423 | | <a name="MyProxyClient._getProxyCertLifetime"></a><div id="MyProxyClient._getProxyCertLifetime-def"><a name="L359"></a><tt class="py-lineno"> 359</tt> <a class="py-toggle" href="#" id="MyProxyClient._getProxyCertLifetime-toggle" onclick="return toggle('MyProxyClient._getProxyCertLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getProxyCertLifetime">_getProxyCertLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
424 | | </div><div id="MyProxyClient._getProxyCertLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getProxyCertLifetime-expanded"><a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Variable myproxy.client.MyProxyClient._proxyCertLifetime=myproxy.client.MyProxyClient-class.html#_proxyCertLifetime"><a title="myproxy.client.MyProxyClient._proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-81', '_proxyCertLifetime', 'link-81');">_proxyCertLifetime</a></tt> </tt> |
425 | | </div><a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> </tt> |
426 | | <a name="MyProxyClient._setProxyCertLifetime"></a><div id="MyProxyClient._setProxyCertLifetime-def"><a name="L362"></a><tt class="py-lineno"> 362</tt> <a class="py-toggle" href="#" id="MyProxyClient._setProxyCertLifetime-toggle" onclick="return toggle('MyProxyClient._setProxyCertLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setProxyCertLifetime">_setProxyCertLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
427 | | </div><div id="MyProxyClient._setProxyCertLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setProxyCertLifetime-expanded"><a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
428 | | <a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="myproxy.client.MyProxyClient._proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-82', '_proxyCertLifetime', 'link-81');">_proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
429 | | <a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
430 | | <a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="myproxy.client.MyProxyClient._proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-83', '_proxyCertLifetime', 'link-81');">_proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
431 | | <a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
432 | | <a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for proxyCertLifetime "</tt> </tt> |
433 | | <a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
434 | | </div><a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> </tt> |
435 | | <a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt id="link-84" class="py-name" targets="Variable myproxy.client.MyProxyClient.proxyCertLifetime=myproxy.client.MyProxyClient-class.html#proxyCertLifetime"><a title="myproxy.client.MyProxyClient.proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-84', 'proxyCertLifetime', 'link-84');">proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-85" class="py-name" targets="Method myproxy.client.MyProxyClient._getProxyCertLifetime()=myproxy.client.MyProxyClient-class.html#_getProxyCertLifetime"><a title="myproxy.client.MyProxyClient._getProxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-85', '_getProxyCertLifetime', 'link-85');">_getProxyCertLifetime</a></tt><tt class="py-op">,</tt> </tt> |
436 | | <a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-86" class="py-name" targets="Method myproxy.client.MyProxyClient._setProxyCertLifetime()=myproxy.client.MyProxyClient-class.html#_setProxyCertLifetime"><a title="myproxy.client.MyProxyClient._setProxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-86', '_setProxyCertLifetime', 'link-86');">_setProxyCertLifetime</a></tt><tt class="py-op">,</tt> </tt> |
437 | | <a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Default proxy cert. lifetime used in "</tt> </tt> |
438 | | <a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-string">"logon request"</tt><tt class="py-op">)</tt> </tt> |
439 | | <a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> </tt> |
440 | | <a name="MyProxyClient._getCACertFilePath"></a><div id="MyProxyClient._getCACertFilePath-def"><a name="L376"></a><tt class="py-lineno"> 376</tt> <a class="py-toggle" href="#" id="MyProxyClient._getCACertFilePath-toggle" onclick="return toggle('MyProxyClient._getCACertFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getCACertFilePath">_getCACertFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
441 | | </div><div id="MyProxyClient._getCACertFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getCACertFilePath-expanded"><a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Variable myproxy.client.MyProxyClient._caCertFilePath=myproxy.client.MyProxyClient-class.html#_caCertFilePath"><a title="myproxy.client.MyProxyClient._caCertFilePath" class="py-name" href="#" onclick="return doclink('link-87', '_caCertFilePath', 'link-87');">_caCertFilePath</a></tt> </tt> |
442 | | </div><a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> </tt> |
443 | | <a name="MyProxyClient._setCACertFilePath"></a><div id="MyProxyClient._setCACertFilePath-def"><a name="L379"></a><tt class="py-lineno"> 379</tt> <a class="py-toggle" href="#" id="MyProxyClient._setCACertFilePath-toggle" onclick="return toggle('MyProxyClient._setCACertFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setCACertFilePath">_setCACertFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
444 | | </div><div id="MyProxyClient._setCACertFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setCACertFilePath-expanded"><a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-docstring">'''@type val: basestring</tt> </tt> |
445 | | <a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"><tt class="py-docstring"> @param val: file path for CA certificate to be used to verify </tt> </tt> |
446 | | <a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"><tt class="py-docstring"> MyProxy server certificate'''</tt> </tt> |
447 | | <a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> </tt> |
448 | | <a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
449 | | <a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt> |
450 | | <a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="myproxy.client.MyProxyClient._caCertFilePath" class="py-name" href="#" onclick="return doclink('link-88', '_caCertFilePath', 'link-87');">_caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
451 | | <a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
452 | | <a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="myproxy.client.MyProxyClient._caCertFilePath" class="py-name" href="#" onclick="return doclink('link-89', '_caCertFilePath', 'link-87');">_caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
453 | | <a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"> </tt> |
454 | | <a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
455 | | <a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for caCertFilePath "</tt> </tt> |
456 | | <a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
457 | | </div><a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> </tt> |
458 | | <a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"> <tt id="link-90" class="py-name" targets="Variable myproxy.client.MyProxyClient.caCertFilePath=myproxy.client.MyProxyClient-class.html#caCertFilePath"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-90', 'caCertFilePath', 'link-90');">caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-91" class="py-name" targets="Method myproxy.client.MyProxyClient._getCACertFilePath()=myproxy.client.MyProxyClient-class.html#_getCACertFilePath"><a title="myproxy.client.MyProxyClient._getCACertFilePath" class="py-name" href="#" onclick="return doclink('link-91', '_getCACertFilePath', 'link-91');">_getCACertFilePath</a></tt><tt class="py-op">,</tt> </tt> |
459 | | <a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-92" class="py-name" targets="Method myproxy.client.MyProxyClient._setCACertFilePath()=myproxy.client.MyProxyClient-class.html#_setCACertFilePath"><a title="myproxy.client.MyProxyClient._setCACertFilePath" class="py-name" href="#" onclick="return doclink('link-92', '_setCACertFilePath', 'link-92');">_setCACertFilePath</a></tt><tt class="py-op">,</tt> </tt> |
460 | | <a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"CA certificate file path - MyProxy server "</tt> </tt> |
461 | | <a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"> <tt class="py-string">"certificate must validate against it and/"</tt> </tt> |
462 | | <a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"> <tt class="py-string">"or any present in caCertDir"</tt><tt class="py-op">)</tt> </tt> |
463 | | <a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> </tt> |
464 | | <a name="MyProxyClient._getCACertDir"></a><div id="MyProxyClient._getCACertDir-def"><a name="L400"></a><tt class="py-lineno"> 400</tt> <a class="py-toggle" href="#" id="MyProxyClient._getCACertDir-toggle" onclick="return toggle('MyProxyClient._getCACertDir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getCACertDir">_getCACertDir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
465 | | </div><div id="MyProxyClient._getCACertDir-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getCACertDir-expanded"><a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name" targets="Variable myproxy.client.MyProxyClient._caCertDir=myproxy.client.MyProxyClient-class.html#_caCertDir"><a title="myproxy.client.MyProxyClient._caCertDir" class="py-name" href="#" onclick="return doclink('link-93', '_caCertDir', 'link-93');">_caCertDir</a></tt> </tt> |
466 | | </div><a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> </tt> |
467 | | <a name="MyProxyClient._setCACertDir"></a><div id="MyProxyClient._setCACertDir-def"><a name="L403"></a><tt class="py-lineno"> 403</tt> <a class="py-toggle" href="#" id="MyProxyClient._setCACertDir-toggle" onclick="return toggle('MyProxyClient._setCACertDir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setCACertDir">_setCACertDir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
468 | | </div><div id="MyProxyClient._setCACertDir-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setCACertDir-expanded"><a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> <tt class="py-docstring">'''Specify a directory containing PEM encoded CA certs. used for </tt> </tt> |
469 | | <a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"> validation of MyProxy server certificate.</tt> </tt> |
470 | | <a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
471 | | <a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"> Set to None to make M2Crypto.SSL.Context.load_verify_locations ignore</tt> </tt> |
472 | | <a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"> this parameter</tt> </tt> |
473 | | <a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
474 | | <a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> @type val: basestring/None</tt> </tt> |
475 | | <a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"> @param val: directory path'''</tt> </tt> |
476 | | <a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> </tt> |
477 | | <a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
478 | | <a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt> |
479 | | <a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="myproxy.client.MyProxyClient._caCertDir" class="py-name" href="#" onclick="return doclink('link-94', '_caCertDir', 'link-93');">_caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
480 | | <a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
481 | | <a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="myproxy.client.MyProxyClient._caCertDir" class="py-name" href="#" onclick="return doclink('link-95', '_caCertDir', 'link-93');">_caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
482 | | <a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> </tt> |
483 | | <a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
484 | | <a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="myproxy.client.MyProxyClient._caCertDir" class="py-name" href="#" onclick="return doclink('link-96', '_caCertDir', 'link-93');">_caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
485 | | <a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
486 | | <a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string or None type for caCertDir "</tt> </tt> |
487 | | <a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
488 | | </div><a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> </tt> |
489 | | <a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt id="link-97" class="py-name" targets="Variable myproxy.client.MyProxyClient.caCertDir=myproxy.client.MyProxyClient-class.html#caCertDir"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-97', 'caCertDir', 'link-97');">caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-98" class="py-name" targets="Method myproxy.client.MyProxyClient._getCACertDir()=myproxy.client.MyProxyClient-class.html#_getCACertDir"><a title="myproxy.client.MyProxyClient._getCACertDir" class="py-name" href="#" onclick="return doclink('link-98', '_getCACertDir', 'link-98');">_getCACertDir</a></tt><tt class="py-op">,</tt> </tt> |
490 | | <a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-99" class="py-name" targets="Method myproxy.client.MyProxyClient._setCACertDir()=myproxy.client.MyProxyClient-class.html#_setCACertDir"><a title="myproxy.client.MyProxyClient._setCACertDir" class="py-name" href="#" onclick="return doclink('link-99', '_setCACertDir', 'link-99');">_setCACertDir</a></tt><tt class="py-op">,</tt> </tt> |
491 | | <a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"directory containing PEM encoded CA "</tt> </tt> |
492 | | <a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> <tt class="py-string">"certificates. Use along with caCertFilePath "</tt> </tt> |
493 | | <a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> <tt class="py-string">"setting to validate MyProxy server certificate"</tt><tt class="py-op">)</tt> </tt> |
494 | | <a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"> </tt> |
495 | | <a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> </tt> |
496 | | <a name="MyProxyClient._getOpenSSLConfig"></a><div id="MyProxyClient._getOpenSSLConfig-def"><a name="L432"></a><tt class="py-lineno"> 432</tt> <a class="py-toggle" href="#" id="MyProxyClient._getOpenSSLConfig-toggle" onclick="return toggle('MyProxyClient._getOpenSSLConfig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getOpenSSLConfig">_getOpenSSLConfig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
497 | | </div><div id="MyProxyClient._getOpenSSLConfig-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getOpenSSLConfig-expanded"><a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"> <tt class="py-docstring">"Get OpenSSLConfig object property method"</tt> </tt> |
498 | | <a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfig" class="py-name" href="#" onclick="return doclink('link-100', '_openSSLConfig', 'link-26');">_openSSLConfig</a></tt> </tt> |
499 | | </div><a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"> </tt> |
500 | | <a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt id="link-101" class="py-name" targets="Variable myproxy.client.MyProxyClient.openSSLConfig=myproxy.client.MyProxyClient-class.html#openSSLConfig"><a title="myproxy.client.MyProxyClient.openSSLConfig" class="py-name" href="#" onclick="return doclink('link-101', 'openSSLConfig', 'link-101');">openSSLConfig</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-102" class="py-name" targets="Method myproxy.client.MyProxyClient._getOpenSSLConfig()=myproxy.client.MyProxyClient-class.html#_getOpenSSLConfig"><a title="myproxy.client.MyProxyClient._getOpenSSLConfig" class="py-name" href="#" onclick="return doclink('link-102', '_getOpenSSLConfig', 'link-102');">_getOpenSSLConfig</a></tt><tt class="py-op">,</tt> </tt> |
501 | | <a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"OpenSSLConfig object"</tt><tt class="py-op">)</tt> </tt> |
502 | | <a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> </tt> |
503 | | <a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"> </tt> |
504 | | <a name="MyProxyClient._initConnection"></a><div id="MyProxyClient._initConnection-def"><a name="L440"></a><tt class="py-lineno"> 440</tt> <a class="py-toggle" href="#" id="MyProxyClient._initConnection-toggle" onclick="return toggle('MyProxyClient._initConnection');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_initConnection">_initConnection</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt> |
505 | | <a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"> <tt class="py-param">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
506 | | <a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"> <tt class="py-param">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
507 | | <a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-param">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
508 | | </div><div id="MyProxyClient._initConnection-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._initConnection-expanded"><a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-docstring">"""Initialise connection setting up SSL context and client and</tt> </tt> |
509 | | <a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"><tt class="py-docstring"> server side identity checks</tt> </tt> |
510 | | <a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
511 | | <a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerCertFile: basestring</tt> </tt> |
512 | | <a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerCertFile: client certificate and owner of credential</tt> </tt> |
513 | | <a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"><tt class="py-docstring"> to be acted on. Can be a proxy cert + proxy's signing cert. Cert</tt> </tt> |
514 | | <a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"><tt class="py-docstring"> and private key are not necessary for getDelegation / logon calls</tt> </tt> |
515 | | <a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerKeyFile: basestring</tt> </tt> |
516 | | <a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerKeyFile: client private key file</tt> </tt> |
517 | | <a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerPassphrase: basestring</tt> </tt> |
518 | | <a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerPassphrase: pass-phrase protecting private key if set - </tt> </tt> |
519 | | <a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"><tt class="py-docstring"> not needed in the case of a proxy private key</tt> </tt> |
520 | | <a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
521 | | <a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> </tt> |
522 | | <a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-comment"># Must be version 3 for MyProxy</tt> </tt> |
523 | | <a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Context</tt><tt class="py-op">(</tt><tt class="py-name">protocol</tt><tt class="py-op">=</tt><tt class="py-string">'sslv3'</tt><tt class="py-op">)</tt> </tt> |
524 | | <a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> </tt> |
525 | | <a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-103', 'caCertFilePath', 'link-90');">caCertFilePath</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-104', 'caCertDir', 'link-97');">caCertDir</a></tt><tt class="py-op">:</tt> </tt> |
526 | | <a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">load_verify_locations</tt><tt class="py-op">(</tt><tt class="py-name">cafile</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-105', 'caCertFilePath', 'link-90');">caCertFilePath</a></tt><tt class="py-op">,</tt> </tt> |
527 | | <a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> <tt class="py-name">capath</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-106', 'caCertDir', 'link-97');">caCertDir</a></tt><tt class="py-op">)</tt> </tt> |
528 | | <a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> </tt> |
529 | | <a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"> <tt class="py-comment"># Stop if peer's certificate can't be verified</tt> </tt> |
530 | | <a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_allow_unknown_ca</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt> |
531 | | <a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
532 | | <a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_allow_unknown_ca</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt> |
533 | | <a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"> </tt> |
534 | | <a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ownerCertFile</tt><tt class="py-op">:</tt> </tt> |
535 | | <a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> |
536 | | <a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">load_cert_chain</tt><tt class="py-op">(</tt><tt class="py-name">ownerCertFile</tt><tt class="py-op">,</tt> </tt> |
537 | | <a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> <tt class="py-name">keyfile</tt><tt class="py-op">=</tt><tt class="py-name">ownerKeyFile</tt><tt class="py-op">,</tt> </tt> |
538 | | <a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt> <tt class="py-op">*</tt><tt class="py-name">ar</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">:</tt> <tt class="py-name">ownerPassphrase</tt><tt class="py-op">)</tt> </tt> |
539 | | <a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt> |
540 | | <a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-107" class="py-name" targets="Class myproxy.client.MyProxyClientConfigError=myproxy.client.MyProxyClientConfigError-class.html"><a title="myproxy.client.MyProxyClientConfigError" class="py-name" href="#" onclick="return doclink('link-107', 'MyProxyClientConfigError', 'link-107');">MyProxyClientConfigError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Loading certificate "</tt> </tt> |
541 | | <a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"> <tt class="py-string">"and private key for SSL "</tt> </tt> |
542 | | <a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"> <tt class="py-string">"connection [also check CA "</tt> </tt> |
543 | | <a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> <tt class="py-string">"certificate settings]: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt> |
544 | | <a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> </tt> |
545 | | <a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"> <tt class="py-comment"># Verify peer's certificate</tt> </tt> |
546 | | <a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_verify</tt><tt class="py-op">(</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">verify_peer</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> |
547 | | <a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"> </tt> |
548 | | <a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"> </tt> |
549 | | <a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-comment"># Disable for compatibility with myproxy server (er, globus)</tt> </tt> |
550 | | <a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># globus doesn't handle this case, apparently, and instead</tt> </tt> |
551 | | <a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># chokes in proxy delegation code</tt> </tt> |
552 | | <a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_options</tt><tt class="py-op">(</tt><tt class="py-name">m2</tt><tt class="py-op">.</tt><tt class="py-name">SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS</tt><tt class="py-op">)</tt> </tt> |
553 | | <a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"> </tt> |
554 | | <a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"> <tt class="py-comment"># connect to myproxy server</tt> </tt> |
555 | | <a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">sock</tt><tt class="py-op">=</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
556 | | <a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"> </tt> |
557 | | <a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> <tt class="py-comment"># Check server host identity - if host doesn't match use explicit</tt> </tt> |
558 | | <a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># 'serverDN' </tt> </tt> |
559 | | <a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># host/<hostname> one</tt> </tt> |
560 | | <a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hostCheck</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name" targets="Class myproxy.client._HostCheck=myproxy.client._HostCheck-class.html"><a title="myproxy.client._HostCheck" class="py-name" href="#" onclick="return doclink('link-108', '_HostCheck', 'link-108');">_HostCheck</a></tt><tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-109', 'hostname', 'link-28');">hostname</a></tt><tt class="py-op">,</tt> </tt> |
561 | | <a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"> <tt class="py-name">myProxyServerDN</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-110', 'serverDN', 'link-34');">serverDN</a></tt><tt class="py-op">,</tt> </tt> |
562 | | <a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-name">cnHostPfx</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="myproxy.client.MyProxyClient.serverCNPrefix" class="py-name" href="#" onclick="return doclink('link-111', 'serverCNPrefix', 'link-62');">serverCNPrefix</a></tt><tt class="py-op">)</tt> </tt> |
563 | | <a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">set_post_connection_check_callback</tt><tt class="py-op">(</tt><tt class="py-name">hostCheck</tt><tt class="py-op">)</tt> </tt> |
564 | | <a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> </tt> |
565 | | <a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">conn</tt> </tt> |
566 | | </div><a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> </tt> |
567 | | <a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> </tt> |
568 | | <a name="MyProxyClient._createCertReq"></a><div id="MyProxyClient._createCertReq-def"><a name="L504"></a><tt class="py-lineno"> 504</tt> <a class="py-toggle" href="#" id="MyProxyClient._createCertReq-toggle" onclick="return toggle('MyProxyClient._createCertReq');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_createCertReq">_createCertReq</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">CN</tt><tt class="py-op">,</tt> <tt class="py-param">nBitsForKey</tt><tt class="py-op">=</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-param">messageDigest</tt><tt class="py-op">=</tt><tt class="py-string">"md5"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
569 | | </div><div id="MyProxyClient._createCertReq-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._createCertReq-expanded"><a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt> |
570 | | <a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"><tt class="py-docstring"> Create a certificate request.</tt> </tt> |
571 | | <a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
572 | | <a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"><tt class="py-docstring"> @type CN: basestring</tt> </tt> |
573 | | <a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"><tt class="py-docstring"> @param CN: Common Name for certificate - effectively the same as the</tt> </tt> |
574 | | <a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"><tt class="py-docstring"> username for the MyProxy credential</tt> </tt> |
575 | | <a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"><tt class="py-docstring"> @type nBitsForKey: int</tt> </tt> |
576 | | <a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"><tt class="py-docstring"> @param nBitsForKey: number of bits for private key generation - </tt> </tt> |
577 | | <a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"><tt class="py-docstring"> default is 1024</tt> </tt> |
578 | | <a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"><tt class="py-docstring"> @type messageDigest: basestring</tt> </tt> |
579 | | <a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"><tt class="py-docstring"> @param messageDigest: message digest type - default is MD5</tt> </tt> |
580 | | <a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple</tt> </tt> |
581 | | <a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"><tt class="py-docstring"> @return certificate request PEM text and private key PEM text</tt> </tt> |
582 | | <a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
583 | | <a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> </tt> |
584 | | <a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> <tt class="py-comment"># Check all required certifcate request DN parameters are set </tt> </tt> |
585 | | <a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Create certificate request</tt> </tt> |
586 | | <a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">req</tt> <tt class="py-op">=</tt> <tt class="py-name">X509</tt><tt class="py-op">.</tt><tt class="py-name">Request</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
587 | | <a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> </tt> |
588 | | <a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"> <tt class="py-comment"># Generate keys</tt> </tt> |
589 | | <a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">RSA</tt><tt class="py-op">.</tt><tt class="py-name">gen_key</tt><tt class="py-op">(</tt><tt class="py-name">nBitsForKey</tt><tt class="py-op">,</tt> <tt class="py-name">m2</tt><tt class="py-op">.</tt><tt class="py-name">RSA_F4</tt><tt class="py-op">)</tt> </tt> |
590 | | <a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> </tt> |
591 | | <a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"> <tt class="py-comment"># Create public key object</tt> </tt> |
592 | | <a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pubKey</tt> <tt class="py-op">=</tt> <tt class="py-name">EVP</tt><tt class="py-op">.</tt><tt class="py-name">PKey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
593 | | <a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-name">pubKey</tt><tt class="py-op">.</tt><tt class="py-name">assign_rsa</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt> |
594 | | <a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"> </tt> |
595 | | <a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-comment"># Add the public key to the request</tt> </tt> |
596 | | <a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">req</tt><tt class="py-op">.</tt><tt class="py-name">set_version</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt> |
597 | | <a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"> <tt class="py-name">req</tt><tt class="py-op">.</tt><tt class="py-name">set_pubkey</tt><tt class="py-op">(</tt><tt class="py-name">pubKey</tt><tt class="py-op">)</tt> </tt> |
598 | | <a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> </tt> |
599 | | <a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> <tt class="py-name">defaultReqDN</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="myproxy.client.MyProxyClient._openSSLConfig" class="py-name" href="#" onclick="return doclink('link-112', '_openSSLConfig', 'link-26');">_openSSLConfig</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Variable myproxy.utils.openssl.OpenSSLConfig.reqDN=myproxy.utils.openssl.OpenSSLConfig-class.html#reqDN"><a title="myproxy.utils.openssl.OpenSSLConfig.reqDN" class="py-name" href="#" onclick="return doclink('link-113', 'reqDN', 'link-113');">reqDN</a></tt> </tt> |
600 | | <a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"> </tt> |
601 | | <a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-comment"># Set DN</tt> </tt> |
602 | | <a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">x509Name</tt> <tt class="py-op">=</tt> <tt class="py-name">X509</tt><tt class="py-op">.</tt><tt class="py-name">X509_Name</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
603 | | <a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-name">x509Name</tt><tt class="py-op">.</tt><tt class="py-name">CN</tt> <tt class="py-op">=</tt> <tt class="py-name">CN</tt> </tt> |
604 | | <a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> </tt> |
605 | | <a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">defaultReqDN</tt><tt class="py-op">:</tt> </tt> |
606 | | <a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-name">x509Name</tt><tt class="py-op">.</tt><tt class="py-name">OU</tt> <tt class="py-op">=</tt> <tt class="py-name">defaultReqDN</tt><tt class="py-op">[</tt><tt class="py-string">'OU'</tt><tt class="py-op">]</tt> </tt> |
607 | | <a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-name">x509Name</tt><tt class="py-op">.</tt><tt class="py-name">O</tt> <tt class="py-op">=</tt> <tt class="py-name">defaultReqDN</tt><tt class="py-op">[</tt><tt class="py-string">'O'</tt><tt class="py-op">]</tt> </tt> |
608 | | <a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> </tt> |
609 | | <a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-name">req</tt><tt class="py-op">.</tt><tt class="py-name">set_subject_name</tt><tt class="py-op">(</tt><tt class="py-name">x509Name</tt><tt class="py-op">)</tt> </tt> |
610 | | <a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> </tt> |
611 | | <a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> <tt class="py-name">req</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt class="py-name">pubKey</tt><tt class="py-op">,</tt> <tt class="py-name">messageDigest</tt><tt class="py-op">)</tt> </tt> |
612 | | <a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> </tt> |
613 | | <a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">req</tt><tt class="py-op">.</tt><tt class="py-name">as_der</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">as_pem</tt><tt class="py-op">(</tt><tt class="py-name">cipher</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
614 | | </div><a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> </tt> |
615 | | <a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> </tt> |
616 | | <a name="MyProxyClient._deserializeResponse"></a><div id="MyProxyClient._deserializeResponse-def"><a name="L552"></a><tt class="py-lineno"> 552</tt> <a class="py-toggle" href="#" id="MyProxyClient._deserializeResponse-toggle" onclick="return toggle('MyProxyClient._deserializeResponse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_deserializeResponse">_deserializeResponse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">fieldNames</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
617 | | </div><div id="MyProxyClient._deserializeResponse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._deserializeResponse-expanded"><a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt> |
618 | | <a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"><tt class="py-docstring"> Deserialize a MyProxy server response</tt> </tt> |
619 | | <a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
620 | | <a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"><tt class="py-docstring"> @param msg: string response message from MyProxy server</tt> </tt> |
621 | | <a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-docstring"> @*fieldNames: the content of additional fields can be returned by </tt> </tt> |
622 | | <a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-docstring"> specifying the field name or names as additional arguments e.g. info</tt> </tt> |
623 | | <a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"><tt class="py-docstring"> method passes 'CRED_START_TIME', 'CRED_END_TIME' and 'CRED_OWNER'</tt> </tt> |
624 | | <a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-docstring"> field names. The content of fields is returned as an extra element</tt> </tt> |
625 | | <a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"><tt class="py-docstring"> in the tuple response. This element is itself a dictionary indexed</tt> </tt> |
626 | | <a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-docstring"> by field name.</tt> </tt> |
627 | | <a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"><tt class="py-docstring"> @return tuple of integer response and errorTxt string (if any)</tt> </tt> |
628 | | <a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
629 | | <a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> </tt> |
630 | | <a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt> |
631 | | <a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> </tt> |
632 | | <a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> <tt class="py-comment"># get response value</tt> </tt> |
633 | | <a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">responselines</tt> <tt class="py-op">=</tt> <tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'RESPONSE'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt> |
634 | | <a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-name">responseline</tt> <tt class="py-op">=</tt> <tt class="py-name">responselines</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt> |
635 | | <a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-name">respCode</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">responseline</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
636 | | <a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"> </tt> |
637 | | <a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> <tt class="py-comment"># get error text</tt> </tt> |
638 | | <a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">errorTxt</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt> |
639 | | <a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-name">errorlines</tt> <tt class="py-op">=</tt> <tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'ERROR'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt> |
640 | | <a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errorlines</tt><tt class="py-op">:</tt> </tt> |
641 | | <a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> <tt class="py-name">etext</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt> |
642 | | <a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> <tt class="py-name">errorTxt</tt> <tt class="py-op">+=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">linesep</tt> <tt class="py-op">+</tt> <tt class="py-name">etext</tt> </tt> |
643 | | <a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> </tt> |
644 | | <a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fieldNames</tt><tt class="py-op">:</tt> </tt> |
645 | | <a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt class="py-name">fields</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> |
646 | | <a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> </tt> |
647 | | <a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fieldName</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fieldNames</tt><tt class="py-op">:</tt> </tt> |
648 | | <a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt class="py-name">fieldlines</tt> <tt class="py-op">=</tt> <tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-name">fieldName</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt> |
649 | | <a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> |
650 | | <a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-comment"># Nb. '1' arg to split ensures owner DN is not split up.</tt> </tt> |
651 | | <a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">field</tt> <tt class="py-op">=</tt> <tt class="py-name">fieldlines</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt> |
652 | | <a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-name">fields</tt><tt class="py-op">[</tt><tt class="py-name">fieldName</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">field</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">field</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">field</tt> </tt> |
653 | | <a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> </tt> |
654 | | <a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt> |
655 | | <a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-comment"># Ignore fields that aren't found</tt> </tt> |
656 | | <a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt> |
657 | | <a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> </tt> |
658 | | <a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">respCode</tt><tt class="py-op">,</tt> <tt class="py-name">errorTxt</tt><tt class="py-op">,</tt> <tt class="py-name">fields</tt> </tt> |
659 | | <a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
660 | | <a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">respCode</tt><tt class="py-op">,</tt> <tt class="py-name">errorTxt</tt> </tt> |
661 | | </div><a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> </tt> |
662 | | <a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> </tt> |
663 | | <a name="MyProxyClient._deserializeCerts"></a><div id="MyProxyClient._deserializeCerts-def"><a name="L599"></a><tt class="py-lineno"> 599</tt> <a class="py-toggle" href="#" id="MyProxyClient._deserializeCerts-toggle" onclick="return toggle('MyProxyClient._deserializeCerts');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_deserializeCerts">_deserializeCerts</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">inputDat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
664 | | </div><div id="MyProxyClient._deserializeCerts-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._deserializeCerts-expanded"><a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-docstring">"""Unpack certificates returned from a get delegation call to the</tt> </tt> |
665 | | <a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"><tt class="py-docstring"> server</tt> </tt> |
666 | | <a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
667 | | <a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"><tt class="py-docstring"> @param inputDat: string containing the proxy cert and private key</tt> </tt> |
668 | | <a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"><tt class="py-docstring"> and signing cert all in DER format</tt> </tt> |
669 | | <a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
670 | | <a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> @return list containing the equivalent to the input in PEM format"""</tt> </tt> |
671 | | <a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-name">pemCerts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt> |
672 | | <a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-name">inputDat</tt> </tt> |
673 | | <a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> </tt> |
674 | | <a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">dat</tt><tt class="py-op">:</tt> </tt> |
675 | | <a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"> <tt class="py-comment"># find start of cert, get length </tt> </tt> |
676 | | <a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">ind</tt> <tt class="py-op">=</tt> <tt class="py-name">dat</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'\x30\x82'</tt><tt class="py-op">)</tt> </tt> |
677 | | <a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ind</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt> |
678 | | <a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt> |
679 | | <a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> </tt> |
680 | | <a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-name">len</tt> <tt class="py-op">=</tt> <tt class="py-number">256</tt><tt class="py-op">*</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">dat</tt><tt class="py-op">[</tt><tt class="py-name">ind</tt><tt class="py-op">+</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">dat</tt><tt class="py-op">[</tt><tt class="py-name">ind</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
681 | | <a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> </tt> |
682 | | <a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> <tt class="py-comment"># extract der-format cert, and convert to pem</tt> </tt> |
683 | | <a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">derCert</tt> <tt class="py-op">=</tt> <tt class="py-name">dat</tt><tt class="py-op">[</tt><tt class="py-name">ind</tt><tt class="py-op">:</tt><tt class="py-name">ind</tt><tt class="py-op">+</tt><tt class="py-name">len</tt><tt class="py-op">+</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt> |
684 | | <a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> </tt> |
685 | | <a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-name">x509</tt> <tt class="py-op">=</tt> <tt class="py-name">X509</tt><tt class="py-op">.</tt><tt class="py-name">load_cert_der_string</tt><tt class="py-op">(</tt><tt class="py-name">derCert</tt><tt class="py-op">)</tt> </tt> |
686 | | <a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt class="py-name">pemCert</tt> <tt class="py-op">=</tt> <tt class="py-name">x509</tt><tt class="py-op">.</tt><tt class="py-name">as_pem</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
687 | | <a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> </tt> |
688 | | <a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-name">pemCerts</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">pemCert</tt><tt class="py-op">)</tt> </tt> |
689 | | <a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> </tt> |
690 | | <a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> <tt class="py-comment"># trim cert from data</tt> </tt> |
691 | | <a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-name">dat</tt><tt class="py-op">[</tt><tt class="py-name">ind</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt> |
692 | | <a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> </tt> |
693 | | <a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pemCerts</tt> </tt> |
694 | | </div><a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> </tt> |
695 | | <a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> </tt> |
696 | | <a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt> |
697 | | <a name="MyProxyClient.writeProxyFile"></a><div id="MyProxyClient.writeProxyFile-def"><a name="L633"></a><tt class="py-lineno"> 633</tt> <a class="py-toggle" href="#" id="MyProxyClient.writeProxyFile-toggle" onclick="return toggle('MyProxyClient.writeProxyFile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#writeProxyFile">writeProxyFile</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt><tt class="py-param">proxyCert</tt><tt class="py-op">,</tt><tt class="py-param">proxyPriKey</tt><tt class="py-op">,</tt><tt class="py-param">userX509Cert</tt><tt class="py-op">,</tt><tt class="py-param">filePath</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
698 | | </div><div id="MyProxyClient.writeProxyFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.writeProxyFile-expanded"><a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-docstring">"""Write out proxy cert to file in the same way as myproxy-logon - </tt> </tt> |
699 | | <a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"><tt class="py-docstring"> proxy cert, private key, user cert. Nb. output from logon can be</tt> </tt> |
700 | | <a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"> passed direct into this method</tt> </tt> |
701 | | <a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
702 | | <a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"><tt class="py-docstring"> @type proxyCert: string </tt> </tt> |
703 | | <a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"><tt class="py-docstring"> @param proxyCert: proxy certificate</tt> </tt> |
704 | | <a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"><tt class="py-docstring"> @type proxyPriKey: string</tt> </tt> |
705 | | <a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> @param proxyPriKey: private key for proxy</tt> </tt> |
706 | | <a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> @type userX509Cert: string</tt> </tt> |
707 | | <a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"><tt class="py-docstring"> @param userX509Cert: user certificate which issued the proxy</tt> </tt> |
708 | | <a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"><tt class="py-docstring"> @type filePath: string</tt> </tt> |
709 | | <a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"><tt class="py-docstring"> @param filePath: set to override the default filePath"""</tt> </tt> |
710 | | <a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> </tt> |
711 | | <a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-114" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-114', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
712 | | <a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> <tt id="link-115" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-115', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-116', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-117', 'defProxyFile', 'link-16');">defProxyFile</a></tt> </tt> |
713 | | <a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> </tt> |
714 | | <a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-118" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-118', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
715 | | <a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt id="link-119" class="py-name"><a title="myproxy.client.MyProxyClientConfigError" class="py-name" href="#" onclick="return doclink('link-119', 'MyProxyClientConfigError', 'link-107');">MyProxyClientConfigError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error setting proxy file path - invalid "</tt> </tt> |
716 | | <a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-string">"platform?"</tt><tt class="py-op">)</tt> </tt> |
717 | | <a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> </tt> |
718 | | <a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-name">outStr</tt> <tt class="py-op">=</tt> <tt class="py-name">proxyCert</tt> <tt class="py-op">+</tt> <tt class="py-name">proxyPriKey</tt> <tt class="py-op">+</tt> <tt class="py-name">userX509Cert</tt> </tt> |
719 | | <a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-120" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-120', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-121', 'defProxyFile', 'link-16');">defProxyFile</a></tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">outStr</tt><tt class="py-op">)</tt> </tt> |
720 | | <a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> |
721 | | <a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> <tt class="py-comment"># Make sure permissions are set correctly</tt> </tt> |
722 | | <a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">chmod</tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-122', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-123', 'defProxyFile', 'link-16');">defProxyFile</a></tt><tt class="py-op">,</tt> <tt class="py-number">0600</tt><tt class="py-op">)</tt> </tt> |
723 | | <a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt> |
724 | | <a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"> <tt class="py-comment"># Don't leave the file lying around if couldn't change it's</tt> </tt> |
725 | | <a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># permissions</tt> </tt> |
726 | | <a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">unlink</tt><tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-124', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-125', 'defProxyFile', 'link-16');">defProxyFile</a></tt><tt class="py-op">)</tt> </tt> |
727 | | <a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> </tt> |
728 | | <a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="myproxy.client.log" class="py-name" href="#" onclick="return doclink('link-126', 'log', 'link-1');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to set 0600 permissions for proxy file "%s": %s'</tt><tt class="py-op">%</tt> </tt> |
729 | | <a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt id="link-127" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-127', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-128', 'defProxyFile', 'link-16');">defProxyFile</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
730 | | <a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt> |
731 | | </div><a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> </tt> |
732 | | <a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt> |
733 | | <a name="MyProxyClient.readProxyFile"></a><div id="MyProxyClient.readProxyFile-def"><a name="L669"></a><tt class="py-lineno"> 669</tt> <a class="py-toggle" href="#" id="MyProxyClient.readProxyFile-toggle" onclick="return toggle('MyProxyClient.readProxyFile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#readProxyFile">readProxyFile</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">filePath</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
734 | | </div><div id="MyProxyClient.readProxyFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.readProxyFile-expanded"><a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> <tt class="py-docstring">"""Read proxy cert file following the format used by myproxy-logon - </tt> </tt> |
735 | | <a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"><tt class="py-docstring"> proxy, cert, private key, user cert.</tt> </tt> |
736 | | <a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
737 | | <a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple</tt> </tt> |
738 | | <a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> @return: tuple containing proxy cert, private key, user cert"""</tt> </tt> |
739 | | <a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-129" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-129', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
740 | | <a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt id="link-130" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-130', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-131', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-132', 'defProxyFile', 'link-16');">defProxyFile</a></tt> </tt> |
741 | | <a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"> </tt> |
742 | | <a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-133" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-133', 'filePath', 'link-68');">filePath</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
743 | | <a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> <tt id="link-134" class="py-name"><a title="myproxy.client.MyProxyClientConfigError" class="py-name" href="#" onclick="return doclink('link-134', 'MyProxyClientConfigError', 'link-107');">MyProxyClientConfigError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error setting proxy file path - invalid "</tt> </tt> |
744 | | <a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"> <tt class="py-string">"platform?"</tt><tt class="py-op">)</tt> </tt> |
745 | | <a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> </tt> |
746 | | <a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"> <tt class="py-name">proxy</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-135" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-135', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="myproxy.client.MyProxyClient.defProxyFile" class="py-name" href="#" onclick="return doclink('link-136', 'defProxyFile', 'link-16');">defProxyFile</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.read" class="py-name" href="#" onclick="return doclink('link-137', 'read', 'link-41');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
747 | | <a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"> </tt> |
748 | | <a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-comment"># Split certs and key into separate tuple items</tt> </tt> |
749 | | <a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'-----BEGIN'</tt><tt class="py-op">+</tt><tt class="py-name">i</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">proxy</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-----BEGIN'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
750 | | </div><a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> </tt> |
751 | | <a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> </tt> |
752 | | <a name="MyProxyClient.info"></a><div id="MyProxyClient.info-def"><a name="L688"></a><tt class="py-lineno"> 688</tt> <a class="py-toggle" href="#" id="MyProxyClient.info-toggle" onclick="return toggle('MyProxyClient.info');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#info">info</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt> |
753 | | <a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt class="py-param">username</tt><tt class="py-op">,</tt> </tt> |
754 | | <a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-param">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
755 | | <a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-param">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
756 | | <a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-param">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
757 | | </div><div id="MyProxyClient.info-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.info-expanded"><a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-docstring">"""return True/False whether credentials exist on the server for a </tt> </tt> |
758 | | <a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"><tt class="py-docstring"> given username</tt> </tt> |
759 | | <a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
760 | | <a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientGetError:</tt> </tt> |
761 | | <a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientRetrieveError:</tt> </tt> |
762 | | <a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
763 | | <a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt> |
764 | | <a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"><tt class="py-docstring"> @param username: username selected for credential</tt> </tt> |
765 | | <a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerCertFile: string</tt> </tt> |
766 | | <a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerCertFile: certificate used for client authentication with</tt> </tt> |
767 | | <a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"><tt class="py-docstring"> the MyProxy server SSL connection. This ID will be set as the owner</tt> </tt> |
768 | | <a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"><tt class="py-docstring"> of the stored credentials. Only the owner can later remove </tt> </tt> |
769 | | <a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"><tt class="py-docstring"> credentials with myproxy-destroy or the destroy method. If not set,</tt> </tt> |
770 | | <a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"><tt class="py-docstring"> this argument defaults to $GLOBUS_LOCATION/etc/hostcert.pem </tt> </tt> |
771 | | <a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerKeyFile: string </tt> </tt> |
772 | | <a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerKeyFile: corresponding private key file. See explanation</tt> </tt> |
773 | | <a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"><tt class="py-docstring"> for ownerCertFile</tt> </tt> |
774 | | <a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"><tt class="py-docstring"> @type ownerPassphrase: string</tt> </tt> |
775 | | <a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerPassphrase: passphrase for ownerKeyFile. Omit if the</tt> </tt> |
776 | | <a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"><tt class="py-docstring"> private key is not password protected.</tt> </tt> |
777 | | <a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
778 | | <a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-name">globusLoc</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'GLOBUS_LOCATION'</tt><tt class="py-op">)</tt> </tt> |
779 | | <a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ownerCertFile</tt><tt class="py-op">:</tt> </tt> |
780 | | <a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">globusLoc</tt><tt class="py-op">:</tt> </tt> |
781 | | <a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-name">ownerCertFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
782 | | <a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-138" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-138', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="myproxy.client.MyProxyClient._hostCertSubDirPath" class="py-name" href="#" onclick="return doclink('link-139', '_hostCertSubDirPath', 'link-14');">_hostCertSubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
783 | | <a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-name">ownerKeyFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
784 | | <a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-140" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-140', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="myproxy.client.MyProxyClient._hostKeySubDirPath" class="py-name" href="#" onclick="return doclink('link-141', '_hostKeySubDirPath', 'link-15');">_hostKeySubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
785 | | <a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
786 | | <a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-142" class="py-name" targets="Class myproxy.client.MyProxyClientError=myproxy.client.MyProxyClientError-class.html"><a title="myproxy.client.MyProxyClientError" class="py-name" href="#" onclick="return doclink('link-142', 'MyProxyClientError', 'link-142');">MyProxyClientError</a></tt><tt class="py-op">(</tt> </tt> |
787 | | <a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-string">"No client authentication cert. and private key file were given"</tt><tt class="py-op">)</tt> </tt> |
788 | | <a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> </tt> |
789 | | <a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-comment"># Set-up SSL connection</tt> </tt> |
790 | | <a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method myproxy.client.MyProxyClient._initConnection()=myproxy.client.MyProxyClient-class.html#_initConnection"><a title="myproxy.client.MyProxyClient._initConnection" class="py-name" href="#" onclick="return doclink('link-143', '_initConnection', 'link-143');">_initConnection</a></tt><tt class="py-op">(</tt><tt class="py-name">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">ownerCertFile</tt><tt class="py-op">,</tt> </tt> |
791 | | <a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-name">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">ownerKeyFile</tt><tt class="py-op">,</tt> </tt> |
792 | | <a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-name">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">ownerPassphrase</tt><tt class="py-op">)</tt> </tt> |
793 | | <a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> </tt> |
794 | | <a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">connect</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-144', 'hostname', 'link-28');">hostname</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-145', 'port', 'link-31');">port</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
795 | | <a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> </tt> |
796 | | <a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-comment"># send globus compatibility stuff</tt> </tt> |
797 | | <a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'0'</tt><tt class="py-op">)</tt> </tt> |
798 | | <a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> </tt> |
799 | | <a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-comment"># send info command - ensure conversion from unicode before writing</tt> </tt> |
800 | | <a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">cmd</tt> <tt class="py-op">=</tt> <tt id="link-146" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-146', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="myproxy.client.MyProxyClient.infoCmd" class="py-name" href="#" onclick="return doclink('link-147', 'infoCmd', 'link-10');">infoCmd</a></tt> <tt class="py-op">%</tt> <tt class="py-name">username</tt> </tt> |
801 | | <a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">cmd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
802 | | <a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> </tt> |
803 | | <a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-comment"># process server response</tt> </tt> |
804 | | <a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">recv</tt><tt class="py-op">(</tt><tt class="py-number">8192</tt><tt class="py-op">)</tt> </tt> |
805 | | <a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> </tt> |
806 | | <a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-comment"># Pass in the names of fields to return in the dictionary 'field' </tt> </tt> |
807 | | <a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">respCode</tt><tt class="py-op">,</tt> <tt class="py-name">errorTxt</tt><tt class="py-op">,</tt> <tt class="py-name">field</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method myproxy.client.MyProxyClient._deserializeResponse()=myproxy.client.MyProxyClient-class.html#_deserializeResponse"><a title="myproxy.client.MyProxyClient._deserializeResponse" class="py-name" href="#" onclick="return doclink('link-148', '_deserializeResponse', 'link-148');">_deserializeResponse</a></tt><tt class="py-op">(</tt><tt class="py-name">dat</tt><tt class="py-op">,</tt> </tt> |
808 | | <a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-string">'CRED_START_TIME'</tt><tt class="py-op">,</tt> </tt> |
809 | | <a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> <tt class="py-string">'CRED_END_TIME'</tt><tt class="py-op">,</tt> </tt> |
810 | | <a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-string">'CRED_OWNER'</tt><tt class="py-op">)</tt> </tt> |
811 | | <a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> </tt> |
812 | | <a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">respCode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">errorTxt</tt><tt class="py-op">,</tt> <tt class="py-name">field</tt> </tt> |
813 | | </div><a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"> </tt> |
814 | | <a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> </tt> |
815 | | <a name="MyProxyClient.changePassphrase"></a><div id="MyProxyClient.changePassphrase-def"><a name="L751"></a><tt class="py-lineno"> 751</tt> <a class="py-toggle" href="#" id="MyProxyClient.changePassphrase-toggle" onclick="return toggle('MyProxyClient.changePassphrase');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#changePassphrase">changePassphrase</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt> |
816 | | <a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"> <tt class="py-param">username</tt><tt class="py-op">,</tt> </tt> |
817 | | <a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> <tt class="py-param">passphrase</tt><tt class="py-op">,</tt> </tt> |
818 | | <a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"> <tt class="py-param">newPassphrase</tt><tt class="py-op">,</tt> </tt> |
819 | | <a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> <tt class="py-param">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
820 | | <a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> <tt class="py-param">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
821 | | <a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> <tt class="py-param">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
822 | | </div><div id="MyProxyClient.changePassphrase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.changePassphrase-expanded"><a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"> <tt class="py-docstring">"""change pass-phrase protecting the credentials for a given username</tt> </tt> |
823 | | <a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
824 | | <a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientGetError:</tt> </tt> |
825 | | <a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientRetrieveError:</tt> </tt> |
826 | | <a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
827 | | <a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"><tt class="py-docstring"> @param username: username of credential</tt> </tt> |
828 | | <a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-docstring"> @param passphrase: existing pass-phrase for credential</tt> </tt> |
829 | | <a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"> @param newPassphrase: new pass-phrase to replace the existing one.</tt> </tt> |
830 | | <a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerCertFile: certificate used for client authentication with</tt> </tt> |
831 | | <a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> the MyProxy server SSL connection. This ID will be set as the owner</tt> </tt> |
832 | | <a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"><tt class="py-docstring"> of the stored credentials. Only the owner can later remove </tt> </tt> |
833 | | <a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"><tt class="py-docstring"> credentials with myproxy-destroy or the destroy method. If not set,</tt> </tt> |
834 | | <a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"><tt class="py-docstring"> this argument defaults to $GLOBUS_LOCATION/etc/hostcert.pem </tt> </tt> |
835 | | <a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerKeyFile: corresponding private key file. See explanation</tt> </tt> |
836 | | <a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"><tt class="py-docstring"> for ownerCertFile</tt> </tt> |
837 | | <a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerPassphrase: passphrase for ownerKeyFile. Omit if the</tt> </tt> |
838 | | <a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> private key is not password protected. </tt> </tt> |
839 | | <a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> @return none</tt> </tt> |
840 | | <a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
841 | | <a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-name">globusLoc</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'GLOBUS_LOCATION'</tt><tt class="py-op">)</tt> </tt> |
842 | | <a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ownerCertFile</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ownerKeyFile</tt><tt class="py-op">:</tt> </tt> |
843 | | <a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">globusLoc</tt><tt class="py-op">:</tt> </tt> |
844 | | <a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-name">ownerCertFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
845 | | <a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-149" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-149', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="myproxy.client.MyProxyClient._hostCertSubDirPath" class="py-name" href="#" onclick="return doclink('link-150', '_hostCertSubDirPath', 'link-14');">_hostCertSubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
846 | | <a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> <tt class="py-name">ownerKeyFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
847 | | <a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-151" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-151', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="myproxy.client.MyProxyClient._hostKeySubDirPath" class="py-name" href="#" onclick="return doclink('link-152', '_hostKeySubDirPath', 'link-15');">_hostKeySubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
848 | | <a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
849 | | <a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-153" class="py-name"><a title="myproxy.client.MyProxyClientError" class="py-name" href="#" onclick="return doclink('link-153', 'MyProxyClientError', 'link-142');">MyProxyClientError</a></tt><tt class="py-op">(</tt> </tt> |
850 | | <a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-string">"No client authentication cert. and private key file were given"</tt><tt class="py-op">)</tt> </tt> |
851 | | <a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> </tt> |
852 | | <a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-comment"># Set-up SSL connection</tt> </tt> |
853 | | <a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="myproxy.client.MyProxyClient._initConnection" class="py-name" href="#" onclick="return doclink('link-154', '_initConnection', 'link-143');">_initConnection</a></tt><tt class="py-op">(</tt><tt class="py-name">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">ownerCertFile</tt><tt class="py-op">,</tt> </tt> |
854 | | <a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-name">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">ownerKeyFile</tt><tt class="py-op">,</tt> </tt> |
855 | | <a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-name">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">ownerPassphrase</tt><tt class="py-op">)</tt> </tt> |
856 | | <a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> </tt> |
857 | | <a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">connect</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-155', 'hostname', 'link-28');">hostname</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-156', 'port', 'link-31');">port</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
858 | | <a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> </tt> |
859 | | <a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-comment"># send globus compatibility stuff</tt> </tt> |
860 | | <a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'0'</tt><tt class="py-op">)</tt> </tt> |
861 | | <a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> </tt> |
862 | | <a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt class="py-comment"># send command - ensure conversion from unicode before writing</tt> </tt> |
863 | | <a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">cmd</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-157', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="myproxy.client.MyProxyClient.changePassphraseCmd" class="py-name" href="#" onclick="return doclink('link-158', 'changePassphraseCmd', 'link-12');">changePassphraseCmd</a></tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> </tt> |
864 | | <a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt class="py-name">passphrase</tt><tt class="py-op">,</tt> </tt> |
865 | | <a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-name">newPassphrase</tt><tt class="py-op">)</tt> </tt> |
866 | | <a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">cmd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
867 | | <a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> </tt> |
868 | | <a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-comment"># process server response</tt> </tt> |
869 | | <a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">recv</tt><tt class="py-op">(</tt><tt class="py-number">8192</tt><tt class="py-op">)</tt> </tt> |
870 | | <a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> </tt> |
871 | | <a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> <tt class="py-name">respCode</tt><tt class="py-op">,</tt> <tt class="py-name">errorTxt</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="myproxy.client.MyProxyClient._deserializeResponse" class="py-name" href="#" onclick="return doclink('link-159', '_deserializeResponse', 'link-148');">_deserializeResponse</a></tt><tt class="py-op">(</tt><tt class="py-name">dat</tt><tt class="py-op">)</tt> </tt> |
872 | | <a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">respCode</tt><tt class="py-op">:</tt> </tt> |
873 | | <a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-160" class="py-name" targets="Class myproxy.client.MyProxyClientGetError=myproxy.client.MyProxyClientGetError-class.html"><a title="myproxy.client.MyProxyClientGetError" class="py-name" href="#" onclick="return doclink('link-160', 'MyProxyClientGetError', 'link-160');">MyProxyClientGetError</a></tt><tt class="py-op">(</tt><tt class="py-name">errorTxt</tt><tt class="py-op">)</tt> </tt> |
874 | | </div><a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> </tt> |
875 | | <a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> </tt> |
876 | | <a name="MyProxyClient.destroy"></a><div id="MyProxyClient.destroy-def"><a name="L812"></a><tt class="py-lineno"> 812</tt> <a class="py-toggle" href="#" id="MyProxyClient.destroy-toggle" onclick="return toggle('MyProxyClient.destroy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#destroy">destroy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt> |
877 | | <a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-param">username</tt><tt class="py-op">,</tt> </tt> |
878 | | <a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-param">ownerCertFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
879 | | <a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt class="py-param">ownerKeyFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
880 | | <a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-param">ownerPassphrase</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
881 | | </div><div id="MyProxyClient.destroy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.destroy-expanded"><a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-docstring">"""destroy credentials from the server for a given username</tt> </tt> |
882 | | <a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
883 | | <a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientGetError:</tt> </tt> |
884 | | <a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"><tt class="py-docstring"> @raise MyProxyClientRetrieveError:</tt> </tt> |
885 | | <a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
886 | | <a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"><tt class="py-docstring"> @param username: username selected for credential</tt> </tt> |
887 | | <a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerCertFile: certificate used for client authentication with</tt> </tt> |
888 | | <a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> the MyProxy server SSL connection. This ID will be set as the owner</tt> </tt> |
889 | | <a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> of the stored credentials. Only the owner can later remove </tt> </tt> |
890 | | <a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> credentials with myproxy-destroy or the destroy method. If not set,</tt> </tt> |
891 | | <a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"> this argument defaults to $GLOBUS_LOCATION/etc/hostcert.pem </tt> </tt> |
892 | | <a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerKeyFile: corresponding private key file. See explanation</tt> </tt> |
893 | | <a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> for ownerCertFile</tt> </tt> |
894 | | <a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> @param ownerPassphrase: passphrase for ownerKeyFile. Omit if the</tt> </tt> |
895 | | <a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> private key is not password protected. </tt> </tt> |
896 | | <a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> @return none</tt> </tt> |
897 | | <a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
898 | | <a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-name">globusLoc</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'GLOBUS_LOCATION'</tt><tt class="py-op">)</tt> </tt> |
899 | | <a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ownerCertFile</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ownerKeyFile</tt><tt class="py-op">:</tt> </tt> |
900 | | <a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">globusLoc</tt><tt class="py-op">:</tt> </tt> |
901 | | <a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-name">ownerCertFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
902 | | <a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-161" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-161', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="myproxy.client.MyProxyClient._hostCertSubDirPath" class="py-name" href="#" onclick="return doclink('link-162', '_hostCertSubDirPath', 'link-14');">_hostCertSubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
903 | | <a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt class="py-name">ownerKeyFile</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">globusLoc</tt><tt class="py-op">,</tt> </tt> |
904 | | <a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-op">*</tt><tt id="link-163" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-163', 'MyProxyClient', 'link-24');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="myproxy.client.MyProxyClient._hostKeySubDirPath" class="py-name" href="#" onclick="return doclink('link-164', '_hostKeySubDirPath', 'link-15');">_hostKeySubDirPath</a></tt><tt class="py-op">)</tt> </tt> |
905 | | <a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
906 | | <a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-165" class="py-name"><a title="myproxy.client.MyProxyClientError" class="py-name" href="#" onclick="return doclink('link-165', 'MyProxyClientError', 'link-142');">MyProxyClientError</a></tt><tt class="py-op">(</tt> </tt> |
907 | | <a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-string">"No client authentication cert. and private key file were given"</tt><tt class="py-op">)</tt> </tt> |
| 133 | <a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">dnFields</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="myproxy.client.MyProxyServerSSLCertVerification.PARSER_RE" class="py-name" href="#" onclick="return doclink('link-15', 'PARSER_RE', 'link-13');">PARSER_RE</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">myProxyServerDN</tt><tt class="py-op">)</tt> </tt> |
| 134 | <a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dnFields</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt> |
| 135 | <a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-16" class="py-name" targets="Class myproxy.client.MyProxyClientError=myproxy.client.MyProxyClientError-class.html"><a title="myproxy.client.MyProxyClientError" class="py-name" href="#" onclick="return doclink('link-16', 'MyProxyClientError', 'link-16');">MyProxyClientError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error parsing DN string: "%s"'</tt> <tt class="py-op">%</tt> </tt> |
| 136 | <a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">myProxyServerDN</tt><tt class="py-op">)</tt> </tt> |
| 137 | <a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt> |
| 138 | <a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">myProxyServerDN</tt> <tt class="py-op">=</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">dnFields</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">dnFields</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
| 139 | <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">myProxyServerDN</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 140 | </div><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> </tt> |
| 141 | <a name="MyProxyServerSSLCertVerification.__call__"></a><div id="MyProxyServerSSLCertVerification.__call__-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="MyProxyServerSSLCertVerification.__call__-toggle" onclick="return toggle('MyProxyServerSSLCertVerification.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyServerSSLCertVerification-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">connection</tt><tt class="py-op">,</tt> <tt class="py-param">peerCert</tt><tt class="py-op">,</tt> <tt class="py-param">errorStatus</tt><tt class="py-op">,</tt> <tt class="py-param">errorDepth</tt><tt class="py-op">,</tt> </tt> |
| 142 | <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-param">successStatus</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 143 | </div><div id="MyProxyServerSSLCertVerification.__call__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyServerSSLCertVerification.__call__-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-docstring">"""Verify MyProxy server certificate</tt> </tt> |
| 144 | <a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 145 | <a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @type connection: OpenSSL.SSL.Connection</tt> </tt> |
| 146 | <a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @param connection: SSL connection object</tt> </tt> |
| 147 | <a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @type peerCert: basestring</tt> </tt> |
| 148 | <a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> @param peerCert: MyProxy server host certificate as OpenSSL.crypto.X509</tt> </tt> |
| 149 | <a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> instance</tt> </tt> |
| 150 | <a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> @type errorStatus: int</tt> </tt> |
| 151 | <a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> @param errorStatus: error code to return if verification fails</tt> </tt> |
| 152 | <a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> @type errorDepth: int</tt> </tt> |
| 153 | <a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> @param errorDepth: </tt> </tt> |
| 154 | <a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> @type successStatus: int</tt> </tt> |
| 155 | <a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> @param successStatus: </tt> </tt> |
| 156 | <a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt> |
| 157 | <a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> @return: status code</tt> </tt> |
| 158 | <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 159 | <a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">peerCert</tt><tt class="py-op">.</tt><tt class="py-name">has_expired</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 160 | <a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-comment"># Any expired certificate in the chain should result in an error</tt> </tt> |
| 161 | <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt id="link-17" class="py-name"><a title="myproxy.client.log" class="py-name" href="#" onclick="return doclink('link-17', 'log', 'link-1');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">getEffectiveLevel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">DEBUG</tt><tt class="py-op">:</tt> </tt> |
| 162 | <a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt id="link-18" class="py-name"><a title="myproxy.client.log" class="py-name" href="#" onclick="return doclink('link-18', 'log', 'link-1');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Certificate %r in peer certificate chain has '</tt><tt class="py-op">,</tt> </tt> |
| 163 | <a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-string">'expired'</tt><tt class="py-op">,</tt> <tt class="py-name">peerCert</tt><tt class="py-op">.</tt><tt class="py-name">get_subject</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
| 164 | <a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> </tt> |
| 165 | <a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">errorStatus</tt> </tt> |
| 166 | <a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> </tt> |
| 167 | <a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">errorDepth</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt> |
| 168 | <a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-comment"># Only interested in DN of last certificate in the chain - this must </tt> </tt> |
| 169 | <a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># match the expected MyProxy Server DN setting</tt> </tt> |
| 170 | <a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">peerCertDN</tt> <tt class="py-op">=</tt> <tt class="py-name">peerCert</tt><tt class="py-op">.</tt><tt class="py-name">get_subject</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">get_components</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 171 | <a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"> <tt class="py-name">peerCertDN</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 172 | <a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> </tt> |
| 173 | <a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">peerCertDN</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">myProxyServerDN</tt><tt class="py-op">:</tt> </tt> |
| 174 | <a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">successStatus</tt> </tt> |
| 175 | <a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 176 | <a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">errorStatus</tt> </tt> |
| 177 | <a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 178 | <a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">successStatus</tt> </tt> |
| 179 | </div></div><a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> </tt> |
| 180 | <a name="MyProxyClientError"></a><div id="MyProxyClientError-def"><a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> </tt> |
| 181 | <a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="MyProxyClientError-toggle" onclick="return toggle('MyProxyClientError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientError-class.html">MyProxyClientError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 182 | </div><div id="MyProxyClientError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientError-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-docstring">"""Base exception class for MyProxyClient exceptions"""</tt> </tt> |
| 183 | </div><a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> </tt> |
| 184 | <a name="MyProxyClientConfigError"></a><div id="MyProxyClientConfigError-def"><a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"> </tt> |
| 185 | <a name="L121"></a><tt class="py-lineno"> 121</tt> <a class="py-toggle" href="#" id="MyProxyClientConfigError-toggle" onclick="return toggle('MyProxyClientConfigError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientConfigError-class.html">MyProxyClientConfigError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 186 | </div><div id="MyProxyClientConfigError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientConfigError-expanded"><a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> <tt class="py-docstring">"""Error with configuration"""</tt> </tt> |
| 187 | </div><a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> </tt> |
| 188 | <a name="MyProxyClientGetError"></a><div id="MyProxyClientGetError-def"><a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"> </tt> |
| 189 | <a name="L125"></a><tt class="py-lineno"> 125</tt> <a class="py-toggle" href="#" id="MyProxyClientGetError-toggle" onclick="return toggle('MyProxyClientGetError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientGetError-class.html">MyProxyClientGetError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 190 | </div><div id="MyProxyClientGetError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientGetError-expanded"><a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"> <tt class="py-docstring">"""Exceptions arising from get request to server"""</tt> </tt> |
| 191 | </div><a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"> </tt> |
| 192 | <a name="MyProxyClientRetrieveError"></a><div id="MyProxyClientRetrieveError-def"><a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"> </tt> |
| 193 | <a name="L129"></a><tt class="py-lineno"> 129</tt> <a class="py-toggle" href="#" id="MyProxyClientRetrieveError-toggle" onclick="return toggle('MyProxyClientRetrieveError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientRetrieveError-class.html">MyProxyClientRetrieveError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 194 | </div><div id="MyProxyClientRetrieveError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientRetrieveError-expanded"><a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"> <tt class="py-docstring">"""Error recovering a response from MyProxy"""</tt> </tt> |
| 195 | </div><a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"> </tt> |
| 196 | <a name="MyProxyCredentialsAlreadyExist"></a><div id="MyProxyCredentialsAlreadyExist-def"><a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"> </tt> |
| 197 | <a name="L133"></a><tt class="py-lineno"> 133</tt> <a class="py-toggle" href="#" id="MyProxyCredentialsAlreadyExist-toggle" onclick="return toggle('MyProxyCredentialsAlreadyExist');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyCredentialsAlreadyExist-class.html">MyProxyCredentialsAlreadyExist</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 198 | </div><div id="MyProxyCredentialsAlreadyExist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyCredentialsAlreadyExist-expanded"><a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"> <tt class="py-docstring">"""Attempting to upload credentials to the server which already exist. -</tt> </tt> |
| 199 | <a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt class="py-docstring"> See MyProxyClient.store</tt> </tt> |
| 200 | <a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 201 | </div><a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"> </tt> |
| 202 | <a name="MyProxyClientGetTrustRootsError"></a><div id="MyProxyClientGetTrustRootsError-def"><a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"> </tt> |
| 203 | <a name="L139"></a><tt class="py-lineno"> 139</tt> <a class="py-toggle" href="#" id="MyProxyClientGetTrustRootsError-toggle" onclick="return toggle('MyProxyClientGetTrustRootsError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClientGetTrustRootsError-class.html">MyProxyClientGetTrustRootsError</a><tt class="py-op">(</tt><tt class="py-base-class">MyProxyClientError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 204 | </div><div id="MyProxyClientGetTrustRootsError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClientGetTrustRootsError-expanded"><a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"> <tt class="py-docstring">"""Error retrieving trust roots"""</tt> </tt> |
| 205 | </div><a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"> </tt> |
| 206 | <a name="MyProxyClient"></a><div id="MyProxyClient-def"><a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"> </tt> |
| 207 | <a name="L143"></a><tt class="py-lineno"> 143</tt> <a class="py-toggle" href="#" id="MyProxyClient-toggle" onclick="return toggle('MyProxyClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html">MyProxyClient</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 208 | </div><div id="MyProxyClient-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MyProxyClient-expanded"><a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"> <tt class="py-docstring">"""MyProxy client interface </tt> </tt> |
| 209 | <a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 210 | <a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt class="py-docstring"> Based on protocol definitions in: </tt> </tt> |
| 211 | <a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 212 | <a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"><tt class="py-docstring"> http://grid.ncsa.uiuc.edu/myproxy/protocol/</tt> </tt> |
| 213 | <a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 214 | <a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt class="py-docstring"> @type GET_CMD: string</tt> </tt> |
| 215 | <a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"><tt class="py-docstring"> @cvar GET_CMD: get command string</tt> </tt> |
| 216 | <a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 217 | <a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt class="py-docstring"> @type INFO_CMD: string</tt> </tt> |
| 218 | <a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"><tt class="py-docstring"> @cvar INFO_CMD: info command string</tt> </tt> |
| 219 | <a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 220 | <a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt class="py-docstring"> @type DESTROY_CMD: string</tt> </tt> |
| 221 | <a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt class="py-docstring"> @cvar DESTROY_CMD: destroy command string</tt> </tt> |
| 222 | <a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 223 | <a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt class="py-docstring"> @type CHANGE_PASSPHRASE_CMD: string</tt> </tt> |
| 224 | <a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt class="py-docstring"> @cvar CHANGE_PASSPHRASE_CMD: command string to change cred pass-phrase</tt> </tt> |
| 225 | <a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 226 | <a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-docstring"> @type STORE_CMD: string</tt> </tt> |
| 227 | <a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt class="py-docstring"> @cvar STORE_CMD: store command string</tt> </tt> |
| 228 | <a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 229 | <a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt class="py-docstring"> @type GET_TRUST_ROOTS_CMD: string</tt> </tt> |
| 230 | <a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"><tt class="py-docstring"> @cvar GET_TRUST_ROOTS_CMD: get trust roots command string</tt> </tt> |
| 231 | <a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 232 | <a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt class="py-docstring"> @type _hostCertSubDirPath: string</tt> </tt> |
| 233 | <a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt class="py-docstring"> @cvar _hostCertSubDirPath: sub-directory path host certificate (as tuple)</tt> </tt> |
| 234 | <a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 235 | <a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt class="py-docstring"> @type _hostKeySubDirPath: string</tt> </tt> |
| 236 | <a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-docstring"> @cvar _hostKeySubDirPath: sub-directory path to host key (as tuple)</tt> </tt> |
| 237 | <a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 238 | <a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"><tt class="py-docstring"> @type PRIKEY_NBITS: int</tt> </tt> |
| 239 | <a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-docstring"> @cvar PRIKEY_NBITS: default number of bits for private key generated</tt> </tt> |
| 240 | <a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 241 | <a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"><tt class="py-docstring"> @type MESSAGE_DIGEST_TYPE: string</tt> </tt> |
| 242 | <a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"><tt class="py-docstring"> @cvar MESSAGE_DIGEST_TYPE: message digest type is MD5</tt> </tt> |
| 243 | <a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 244 | <a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"><tt class="py-docstring"> @type SERVER_RESP_BLK_SIZE: int</tt> </tt> |
| 245 | <a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"><tt class="py-docstring"> @cvar SERVER_RESP_BLK_SIZE: block size for retrievals from server</tt> </tt> |
| 246 | <a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 247 | <a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"><tt class="py-docstring"> @type MAX_RECV_TRIES: int</tt> </tt> |
| 248 | <a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"><tt class="py-docstring"> @cvar MAX_RECV_TRIES: maximum number of retrievals of size </tt> </tt> |
| 249 | <a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"><tt class="py-docstring"> SERVER_RESP_BLK_SIZE before this client gives up</tt> </tt> |
| 250 | <a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 251 | <a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"><tt class="py-docstring"> @type DEF_PROXY_FILEPATH: string</tt> </tt> |
| 252 | <a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-docstring"> @cvar DEF_PROXY_FILEPATH: default location for proxy file to be written to</tt> </tt> |
| 253 | <a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 254 | <a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> @type PROXY_FILE_PERMISSIONS: int</tt> </tt> |
| 255 | <a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-docstring"> @cvar PROXY_FILE_PERMISSIONS: file permissions returned proxy file is </tt> </tt> |
| 256 | <a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"> created with</tt> </tt> |
| 257 | <a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 258 | <a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> @type PROPERTY_DEFAULTS: tuple</tt> </tt> |
| 259 | <a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"> @cvar PROPERTY_DEFAULTS: sets permissable element names for MyProxy config </tt> </tt> |
| 260 | <a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-docstring"> file</tt> </tt> |
| 261 | <a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 262 | <a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"> </tt> |
| 263 | <a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> <tt id="link-19" class="py-name" targets="Variable myproxy.client.MyProxyClient.GET_CMD=myproxy.client.MyProxyClient-class.html#GET_CMD"><a title="myproxy.client.MyProxyClient.GET_CMD" class="py-name" href="#" onclick="return doclink('link-19', 'GET_CMD', 'link-19');">GET_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 264 | <a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"><tt class="py-string">COMMAND=0</tt> </tt> |
| 265 | <a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 266 | <a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=%s</tt> </tt> |
| 267 | <a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"><tt class="py-string">LIFETIME=%d"""</tt> </tt> |
| 268 | <a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> </tt> |
| 269 | <a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt id="link-20" class="py-name" targets="Variable myproxy.client.MyProxyClient.PUT_CMD=myproxy.client.MyProxyClient-class.html#PUT_CMD"><a title="myproxy.client.MyProxyClient.PUT_CMD" class="py-name" href="#" onclick="return doclink('link-20', 'PUT_CMD', 'link-20');">PUT_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 270 | <a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"><tt class="py-string">COMMAND=1</tt> </tt> |
| 271 | <a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 272 | <a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=<pass phrase></tt> </tt> |
| 273 | <a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"><tt class="py-string">LIFETIME=%d"""</tt> </tt> |
| 274 | <a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> </tt> |
| 275 | <a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> <tt id="link-21" class="py-name" targets="Variable myproxy.client.MyProxyClient.INFO_CMD=myproxy.client.MyProxyClient-class.html#INFO_CMD"><a title="myproxy.client.MyProxyClient.INFO_CMD" class="py-name" href="#" onclick="return doclink('link-21', 'INFO_CMD', 'link-21');">INFO_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 276 | <a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"><tt class="py-string">COMMAND=2</tt> </tt> |
| 277 | <a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 278 | <a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=PASSPHRASE</tt> </tt> |
| 279 | <a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"><tt class="py-string">LIFETIME=0"""</tt> </tt> |
| 280 | <a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> </tt> |
| 281 | <a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"> <tt id="link-22" class="py-name" targets="Variable myproxy.client.MyProxyClient.DESTROY_CMD=myproxy.client.MyProxyClient-class.html#DESTROY_CMD"><a title="myproxy.client.MyProxyClient.DESTROY_CMD" class="py-name" href="#" onclick="return doclink('link-22', 'DESTROY_CMD', 'link-22');">DESTROY_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 282 | <a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-string">COMMAND=3</tt> </tt> |
| 283 | <a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 284 | <a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=PASSPHRASE</tt> </tt> |
| 285 | <a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-string">LIFETIME=0"""</tt> </tt> |
| 286 | <a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"> </tt> |
| 287 | <a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> <tt id="link-23" class="py-name" targets="Variable myproxy.client.MyProxyClient.CHANGE_PASSPHRASE_CMD=myproxy.client.MyProxyClient-class.html#CHANGE_PASSPHRASE_CMD"><a title="myproxy.client.MyProxyClient.CHANGE_PASSPHRASE_CMD" class="py-name" href="#" onclick="return doclink('link-23', 'CHANGE_PASSPHRASE_CMD', 'link-23');">CHANGE_PASSPHRASE_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 288 | <a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-string"> COMMAND=4</tt> </tt> |
| 289 | <a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-string"> USERNAME=%s</tt> </tt> |
| 290 | <a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-string"> PASSPHRASE=%s</tt> </tt> |
| 291 | <a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-string"> NEW_PHRASE=%s</tt> </tt> |
| 292 | <a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-string"> LIFETIME=0"""</tt> </tt> |
| 293 | <a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> </tt> |
| 294 | <a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt id="link-24" class="py-name" targets="Variable myproxy.client.MyProxyClient.STORE_CMD=myproxy.client.MyProxyClient-class.html#STORE_CMD"><a title="myproxy.client.MyProxyClient.STORE_CMD" class="py-name" href="#" onclick="return doclink('link-24', 'STORE_CMD', 'link-24');">STORE_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 295 | <a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"><tt class="py-string">COMMAND=5</tt> </tt> |
| 296 | <a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 297 | <a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=</tt> </tt> |
| 298 | <a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"><tt class="py-string">LIFETIME=%d"""</tt> </tt> |
| 299 | <a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> </tt> |
| 300 | <a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt id="link-25" class="py-name" targets="Variable myproxy.client.MyProxyClient.GET_TRUST_ROOTS_CMD=myproxy.client.MyProxyClient-class.html#GET_TRUST_ROOTS_CMD"><a title="myproxy.client.MyProxyClient.GET_TRUST_ROOTS_CMD" class="py-name" href="#" onclick="return doclink('link-25', 'GET_TRUST_ROOTS_CMD', 'link-25');">GET_TRUST_ROOTS_CMD</a></tt><tt class="py-op">=</tt><tt class="py-string">"""VERSION=MYPROXYv2</tt> </tt> |
| 301 | <a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"><tt class="py-string">COMMAND=7</tt> </tt> |
| 302 | <a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"><tt class="py-string">USERNAME=%s</tt> </tt> |
| 303 | <a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"><tt class="py-string">PASSPHRASE=%s</tt> </tt> |
| 304 | <a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"><tt class="py-string">LIFETIME=0</tt> </tt> |
| 305 | <a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"><tt class="py-string">TRUSTED_CERTS=1"""</tt> </tt> |
| 306 | <a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> </tt> |
| 307 | <a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> <tt id="link-26" class="py-name" targets="Variable myproxy.client.MyProxyClient._hostCertSubDirPath=myproxy.client.MyProxyClient-class.html#_hostCertSubDirPath"><a title="myproxy.client.MyProxyClient._hostCertSubDirPath" class="py-name" href="#" onclick="return doclink('link-26', '_hostCertSubDirPath', 'link-26');">_hostCertSubDirPath</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'etc'</tt><tt class="py-op">,</tt> <tt class="py-string">'hostcert.pem'</tt><tt class="py-op">)</tt> </tt> |
| 308 | <a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt id="link-27" class="py-name" targets="Variable myproxy.client.MyProxyClient._hostKeySubDirPath=myproxy.client.MyProxyClient-class.html#_hostKeySubDirPath"><a title="myproxy.client.MyProxyClient._hostKeySubDirPath" class="py-name" href="#" onclick="return doclink('link-27', '_hostKeySubDirPath', 'link-27');">_hostKeySubDirPath</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'etc'</tt><tt class="py-op">,</tt> <tt class="py-string">'hostkey.pem'</tt><tt class="py-op">)</tt> </tt> |
| 309 | <a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"> </tt> |
| 310 | <a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"> <tt id="link-28" class="py-name" targets="Variable myproxy.client.MyProxyClient.PROXY_FILE_PERMISSIONS=myproxy.client.MyProxyClient-class.html#PROXY_FILE_PERMISSIONS"><a title="myproxy.client.MyProxyClient.PROXY_FILE_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-28', 'PROXY_FILE_PERMISSIONS', 'link-28');">PROXY_FILE_PERMISSIONS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0600</tt> </tt> |
| 311 | <a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"> </tt> |
| 312 | <a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"> <tt class="py-comment"># Work out default location of proxy file if it exists. This is set if a</tt> </tt> |
| 313 | <a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># call has been made previously to logon / get-delegation</tt> </tt> |
| 314 | <a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-29" class="py-name" targets="Variable myproxy.client.MyProxyClient.DEF_PROXY_FILEPATH=myproxy.client.MyProxyClient-class.html#DEF_PROXY_FILEPATH"><a title="myproxy.client.MyProxyClient.DEF_PROXY_FILEPATH" class="py-name" href="#" onclick="return doclink('link-29', 'DEF_PROXY_FILEPATH', 'link-29');">DEF_PROXY_FILEPATH</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-string">'win32'</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'proxy'</tt> <tt class="py-keyword">or</tt> </tt> |
| 315 | <a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'linux2'</tt><tt class="py-op">,</tt> <tt class="py-string">'darwin'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> </tt> |
| 316 | <a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"> <tt class="py-string">'/tmp/x509up_u%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">getuid</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
| 317 | <a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"> <tt class="py-keyword">or</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt> |
| 318 | <a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"> </tt> |
| 319 | <a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt id="link-30" class="py-name" targets="Variable myproxy.client.MyProxyClient.PRIKEY_NBITS=myproxy.client.MyProxyClient-class.html#PRIKEY_NBITS"><a title="myproxy.client.MyProxyClient.PRIKEY_NBITS" class="py-name" href="#" onclick="return doclink('link-30', 'PRIKEY_NBITS', 'link-30');">PRIKEY_NBITS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4096</tt> </tt> |
| 320 | <a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt id="link-31" class="py-name" targets="Variable myproxy.client.MyProxyClient.MESSAGE_DIGEST_TYPE=myproxy.client.MyProxyClient-class.html#MESSAGE_DIGEST_TYPE"><a title="myproxy.client.MyProxyClient.MESSAGE_DIGEST_TYPE" class="py-name" href="#" onclick="return doclink('link-31', 'MESSAGE_DIGEST_TYPE', 'link-31');">MESSAGE_DIGEST_TYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"md5"</tt> </tt> |
| 321 | <a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt id="link-32" class="py-name" targets="Variable myproxy.client.MyProxyClient.SERVER_RESP_BLK_SIZE=myproxy.client.MyProxyClient-class.html#SERVER_RESP_BLK_SIZE"><a title="myproxy.client.MyProxyClient.SERVER_RESP_BLK_SIZE" class="py-name" href="#" onclick="return doclink('link-32', 'SERVER_RESP_BLK_SIZE', 'link-32');">SERVER_RESP_BLK_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8192</tt> </tt> |
| 322 | <a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> <tt id="link-33" class="py-name" targets="Variable myproxy.client.MyProxyClient.MAX_RECV_TRIES=myproxy.client.MyProxyClient-class.html#MAX_RECV_TRIES"><a title="myproxy.client.MyProxyClient.MAX_RECV_TRIES" class="py-name" href="#" onclick="return doclink('link-33', 'MAX_RECV_TRIES', 'link-33');">MAX_RECV_TRIES</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt> </tt> |
| 323 | <a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> </tt> |
| 324 | <a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-comment"># valid configuration property keywords</tt> </tt> |
| 325 | <a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-34" class="py-name" targets="Variable myproxy.client.MyProxyClient.PROPERTY_DEFAULTS=myproxy.client.MyProxyClient-class.html#PROPERTY_DEFAULTS"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-34', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt> |
| 326 | <a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-string">'hostname'</tt><tt class="py-op">:</tt> <tt class="py-string">'localhost'</tt><tt class="py-op">,</tt> </tt> |
| 327 | <a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-string">'port'</tt><tt class="py-op">:</tt> <tt class="py-number">7512</tt><tt class="py-op">,</tt> </tt> |
| 328 | <a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> <tt class="py-string">'serverDN'</tt><tt class="py-op">:</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt> |
| 329 | <a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> <tt class="py-string">'openSSLConfFilePath'</tt><tt class="py-op">:</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt> |
| 330 | <a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-string">'proxyCertMaxLifetime'</tt><tt class="py-op">:</tt> <tt class="py-number">43200</tt><tt class="py-op">,</tt> </tt> |
| 331 | <a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> <tt class="py-string">'proxyCertLifetime'</tt><tt class="py-op">:</tt> <tt class="py-number">43200</tt><tt class="py-op">,</tt> </tt> |
| 332 | <a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"> <tt class="py-string">'caCertFilePath'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
| 333 | <a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> <tt class="py-string">'caCertDir'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt> </tt> |
| 334 | <a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt> |
| 335 | <a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"> </tt> |
| 336 | <a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"> <tt class="py-comment"># Restrict attributes to the above properties, their equivalent </tt> </tt> |
| 337 | <a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># protected values + extra OpenSSL config object.</tt> </tt> |
| 338 | <a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">__slots__</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'__'</tt> <tt class="py-op">+</tt> <tt id="link-35" class="py-name" targets="Variable myproxy.client.MyProxyClient.k=myproxy.client.MyProxyClient-class.html#k"><a title="myproxy.client.MyProxyClient.k" class="py-name" href="#" onclick="return doclink('link-35', 'k', 'link-35');">k</a></tt> <tt class="py-keyword">for</tt> <tt id="link-36" class="py-name"><a title="myproxy.client.MyProxyClient.k" class="py-name" href="#" onclick="return doclink('link-36', 'k', 'link-35');">k</a></tt> <tt class="py-keyword">in</tt> <tt id="link-37" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-37', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
| 339 | <a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-name">__slots__</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-string">'__openSSLConfig'</tt><tt class="py-op">,</tt> <tt class="py-string">'__cfg'</tt><tt class="py-op">,</tt> <tt class="py-string">'__serverSSLCertVerify'</tt><tt class="py-op">)</tt> </tt> |
| 340 | <a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"> </tt> |
| 341 | <a name="MyProxyClient.__init__"></a><div id="MyProxyClient.__init__-def"><a name="L277"></a><tt class="py-lineno"> 277</tt> <a class="py-toggle" href="#" id="MyProxyClient.__init__-toggle" onclick="return toggle('MyProxyClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cfgFilePath</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">prop</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 342 | </div><div id="MyProxyClient.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.__init__-expanded"><a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt class="py-docstring">"""Make any initial settings for client connections to MyProxy</tt> </tt> |
| 343 | <a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 344 | <a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"><tt class="py-docstring"> Settings are held in a dictionary which can be set from **prop,</tt> </tt> |
| 345 | <a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"><tt class="py-docstring"> a call to setProperties() or by passing settings in an XML file</tt> </tt> |
| 346 | <a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"><tt class="py-docstring"> given by cfgFilePath</tt> </tt> |
| 347 | <a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 348 | <a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"><tt class="py-docstring"> @param cfgFilePath: set properties via a configuration file</tt> </tt> |
| 349 | <a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"><tt class="py-docstring"> @type cfgFilePath: basestring</tt> </tt> |
| 350 | <a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"><tt class="py-docstring"> @param **prop: set properties via keywords - see </tt> </tt> |
| 351 | <a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"><tt class="py-docstring"> PROPERTY_DEFAULTS class variable for a list of these</tt> </tt> |
| 352 | <a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"><tt class="py-docstring"> @type **prop: dict</tt> </tt> |
| 353 | <a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 354 | <a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Variable myproxy.client.MyProxyClient.__hostname=myproxy.client.MyProxyClient-class.html#__hostname"><a title="myproxy.client.MyProxyClient.__hostname" class="py-name" href="#" onclick="return doclink('link-38', '__hostname', 'link-38');">__hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 355 | <a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Variable myproxy.client.MyProxyClient.__port=myproxy.client.MyProxyClient-class.html#__port"><a title="myproxy.client.MyProxyClient.__port" class="py-name" href="#" onclick="return doclink('link-39', '__port', 'link-39');">__port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 356 | <a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Variable myproxy.client.MyProxyClient.__serverDN=myproxy.client.MyProxyClient-class.html#__serverDN"><a title="myproxy.client.MyProxyClient.__serverDN" class="py-name" href="#" onclick="return doclink('link-40', '__serverDN', 'link-40');">__serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 357 | <a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Variable myproxy.client.MyProxyClient.__openSSLConfFilePath=myproxy.client.MyProxyClient-class.html#__openSSLConfFilePath"><a title="myproxy.client.MyProxyClient.__openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-41', '__openSSLConfFilePath', 'link-41');">__openSSLConfFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 358 | <a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Variable myproxy.client.MyProxyClient.__proxyCertMaxLifetime=myproxy.client.MyProxyClient-class.html#__proxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient.__proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-42', '__proxyCertMaxLifetime', 'link-42');">__proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name" targets="Class myproxy.client.MyProxyClient=myproxy.client.MyProxyClient-class.html"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-43', 'MyProxyClient', 'link-43');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-44', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">[</tt> </tt> |
| 359 | <a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-string">'proxyCertMaxLifetime'</tt><tt class="py-op">]</tt> </tt> |
| 360 | <a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Variable myproxy.client.MyProxyClient.__proxyCertLifetime=myproxy.client.MyProxyClient-class.html#__proxyCertLifetime"><a title="myproxy.client.MyProxyClient.__proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-45', '__proxyCertLifetime', 'link-45');">__proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-46', 'MyProxyClient', 'link-43');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-47', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">[</tt> </tt> |
| 361 | <a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-string">'proxyCertLifetime'</tt><tt class="py-op">]</tt> </tt> |
| 362 | <a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Variable myproxy.client.MyProxyClient.__caCertFilePath=myproxy.client.MyProxyClient-class.html#__caCertFilePath"><a title="myproxy.client.MyProxyClient.__caCertFilePath" class="py-name" href="#" onclick="return doclink('link-48', '__caCertFilePath', 'link-48');">__caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 363 | <a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Variable myproxy.client.MyProxyClient.__caCertDir=myproxy.client.MyProxyClient-class.html#__caCertDir"><a title="myproxy.client.MyProxyClient.__caCertDir" class="py-name" href="#" onclick="return doclink('link-49', '__caCertDir', 'link-49');">__caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 364 | <a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> </tt> |
| 365 | <a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Variable myproxy.client.MyProxyClient.__cfg=myproxy.client.MyProxyClient-class.html#__cfg"><a title="myproxy.client.MyProxyClient.__cfg" class="py-name" href="#" onclick="return doclink('link-50', '__cfg', 'link-50');">__cfg</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 366 | <a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> </tt> |
| 367 | <a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> </tt> |
| 368 | <a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-comment"># Configuration file used to get default subject when generating a</tt> </tt> |
| 369 | <a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># new proxy certificate request</tt> </tt> |
| 370 | <a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Variable myproxy.client.MyProxyClient.__openSSLConfig=myproxy.client.MyProxyClient-class.html#__openSSLConfig"><a title="myproxy.client.MyProxyClient.__openSSLConfig" class="py-name" href="#" onclick="return doclink('link-51', '__openSSLConfig', 'link-51');">__openSSLConfig</a></tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig" class="py-name" href="#" onclick="return doclink('link-52', 'OpenSSLConfig', 'link-5');">OpenSSLConfig</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 371 | <a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> </tt> |
| 372 | <a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-comment"># Server host name - take from environment variable if available</tt> </tt> |
| 373 | <a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Variable myproxy.client.MyProxyClient.hostname=myproxy.client.MyProxyClient-class.html#hostname"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-53', 'hostname', 'link-53');">hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER'</tt><tt class="py-op">,</tt> </tt> |
| 374 | <a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-54', 'MyProxyClient', 'link-43');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-55', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">[</tt><tt class="py-string">'hostname'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
| 375 | <a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> </tt> |
| 376 | <a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-comment"># ... and port number</tt> </tt> |
| 377 | <a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Variable myproxy.client.MyProxyClient.port=myproxy.client.MyProxyClient-class.html#port"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-56', 'port', 'link-56');">port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER_PORT'</tt><tt class="py-op">,</tt> </tt> |
| 378 | <a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt id="link-57" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-57', 'MyProxyClient', 'link-43');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-58', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">[</tt><tt class="py-string">'port'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
| 379 | <a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> </tt> |
| 380 | <a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-comment"># Server Distinguished Name</tt> </tt> |
| 381 | <a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Variable myproxy.client.MyProxyClient.serverDN=myproxy.client.MyProxyClient-class.html#serverDN"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-59', 'serverDN', 'link-59');">serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'MYPROXY_SERVER_DN'</tt><tt class="py-op">,</tt> </tt> |
| 382 | <a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt id="link-60" class="py-name"><a title="myproxy.client.MyProxyClient" class="py-name" href="#" onclick="return doclink('link-60', 'MyProxyClient', 'link-43');">MyProxyClient</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="myproxy.client.MyProxyClient.PROPERTY_DEFAULTS" class="py-name" href="#" onclick="return doclink('link-61', 'PROPERTY_DEFAULTS', 'link-34');">PROPERTY_DEFAULTS</a></tt><tt class="py-op">[</tt><tt class="py-string">'serverDN'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> |
| 383 | <a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> </tt> |
| 384 | <a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-comment"># Environment variable may be quoted</tt> </tt> |
| 385 | <a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-62', 'serverDN', 'link-59');">serverDN</a></tt><tt class="py-op">:</tt> </tt> |
| 386 | <a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-63', 'serverDN', 'link-59');">serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-64', 'serverDN', 'link-59');">serverDN</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt> |
| 387 | <a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> </tt> |
| 388 | <a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-comment"># Any keyword settings override the defaults above</tt> </tt> |
| 389 | <a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prop</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 390 | <a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 391 | <a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> </tt> |
| 392 | <a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-comment"># If properties file is set any parameters settings in file will</tt> </tt> |
| 393 | <a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># override those set by input keyword or the defaults</tt> </tt> |
| 394 | <a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">cfgFilePath</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
| 395 | <a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method myproxy.client.MyProxyClient.parseConfig()=myproxy.client.MyProxyClient-class.html#parseConfig"><a title="myproxy.client.MyProxyClient.parseConfig" class="py-name" href="#" onclick="return doclink('link-65', 'parseConfig', 'link-65');">parseConfig</a></tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">=</tt><tt class="py-name">cfgFilePath</tt><tt class="py-op">)</tt> </tt> |
| 396 | <a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> </tt> |
| 397 | <a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Variable myproxy.client.MyProxyClient.__serverSSLCertVerify=myproxy.client.MyProxyClient-class.html#__serverSSLCertVerify"><a title="myproxy.client.MyProxyClient.__serverSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-66', '__serverSSLCertVerify', 'link-66');">__serverSSLCertVerify</a></tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Class myproxy.client.MyProxyServerSSLCertVerification=myproxy.client.MyProxyServerSSLCertVerification-class.html"><a title="myproxy.client.MyProxyServerSSLCertVerification" class="py-name" href="#" onclick="return doclink('link-67', 'MyProxyServerSSLCertVerification', 'link-67');">MyProxyServerSSLCertVerification</a></tt><tt class="py-op">(</tt> </tt> |
| 398 | <a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-name">myProxyServerDN</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-68', 'serverDN', 'link-59');">serverDN</a></tt><tt class="py-op">)</tt> </tt> |
| 399 | </div><a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> </tt> |
| 400 | <a name="MyProxyClient._getServerSSLCertVerify"></a><div id="MyProxyClient._getServerSSLCertVerify-def"><a name="L336"></a><tt class="py-lineno"> 336</tt> <a class="py-toggle" href="#" id="MyProxyClient._getServerSSLCertVerify-toggle" onclick="return toggle('MyProxyClient._getServerSSLCertVerify');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getServerSSLCertVerify">_getServerSSLCertVerify</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 401 | </div><div id="MyProxyClient._getServerSSLCertVerify-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getServerSSLCertVerify-expanded"><a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="myproxy.client.MyProxyClient.__serverSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-69', '__serverSSLCertVerify', 'link-66');">__serverSSLCertVerify</a></tt> </tt> |
| 402 | </div><a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> </tt> |
| 403 | <a name="MyProxyClient._setServerSSLCertVerify"></a><div id="MyProxyClient._setServerSSLCertVerify-def"><a name="L339"></a><tt class="py-lineno"> 339</tt> <a class="py-toggle" href="#" id="MyProxyClient._setServerSSLCertVerify-toggle" onclick="return toggle('MyProxyClient._setServerSSLCertVerify');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setServerSSLCertVerify">_setServerSSLCertVerify</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 404 | </div><div id="MyProxyClient._setServerSSLCertVerify-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setServerSSLCertVerify-expanded"><a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt id="link-70" class="py-name"><a title="myproxy.client.MyProxyServerSSLCertVerification" class="py-name" href="#" onclick="return doclink('link-70', 'MyProxyServerSSLCertVerification', 'link-67');">MyProxyServerSSLCertVerification</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 405 | <a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Expecting %r derived type for '</tt> </tt> |
| 406 | <a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-string">'"serverSSLCertVerify" attribute; got %r'</tt> <tt class="py-op">%</tt> </tt> |
| 407 | <a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="myproxy.client.MyProxyServerSSLCertVerification" class="py-name" href="#" onclick="return doclink('link-71', 'MyProxyServerSSLCertVerification', 'link-67');">MyProxyServerSSLCertVerification</a></tt><tt class="py-op">,</tt> </tt> |
| 408 | <a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt> |
| 409 | <a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="myproxy.client.MyProxyClient.__serverSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-72', '__serverSSLCertVerify', 'link-66');">__serverSSLCertVerify</a></tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt> |
| 410 | </div><a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> </tt> |
| 411 | <a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt id="link-73" class="py-name" targets="Variable myproxy.client.MyProxyClient.serverSSLCertVerify=myproxy.client.MyProxyClient-class.html#serverSSLCertVerify"><a title="myproxy.client.MyProxyClient.serverSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-73', 'serverSSLCertVerify', 'link-73');">serverSSLCertVerify</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name" targets="Method myproxy.client.MyProxyClient._getServerSSLCertVerify()=myproxy.client.MyProxyClient-class.html#_getServerSSLCertVerify"><a title="myproxy.client.MyProxyClient._getServerSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-74', '_getServerSSLCertVerify', 'link-74');">_getServerSSLCertVerify</a></tt><tt class="py-op">,</tt> </tt> |
| 412 | <a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt id="link-75" class="py-name" targets="Method myproxy.client.MyProxyClient._setServerSSLCertVerify()=myproxy.client.MyProxyClient-class.html#_setServerSSLCertVerify"><a title="myproxy.client.MyProxyClient._setServerSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-75', '_setServerSSLCertVerify', 'link-75');">_setServerSSLCertVerify</a></tt><tt class="py-op">,</tt> </tt> |
| 413 | <a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Class with a __call__ method which is "</tt> </tt> |
| 414 | <a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-string">"passed to the SSL context to verify "</tt> </tt> |
| 415 | <a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> <tt class="py-string">"the peer (MyProxy server) certificate "</tt> </tt> |
| 416 | <a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-string">"in the SSL handshake between this "</tt> </tt> |
| 417 | <a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-string">"client and the MyProxy server"</tt><tt class="py-op">)</tt> </tt> |
| 418 | <a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> </tt> |
| 419 | <a name="MyProxyClient.parseConfig"></a><div id="MyProxyClient.parseConfig-def"><a name="L355"></a><tt class="py-lineno"> 355</tt> <a class="py-toggle" href="#" id="MyProxyClient.parseConfig-toggle" onclick="return toggle('MyProxyClient.parseConfig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#parseConfig">parseConfig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cfg</tt><tt class="py-op">,</tt> <tt class="py-param">section</tt><tt class="py-op">=</tt><tt class="py-string">'DEFAULT'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 420 | </div><div id="MyProxyClient.parseConfig-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient.parseConfig-expanded"><a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-docstring">'''Extract parameters from _cfg config object'''</tt> </tt> |
| 421 | <a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> </tt> |
| 422 | <a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 423 | <a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"> <tt class="py-name">cfgFilePath</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">cfg</tt><tt class="py-op">)</tt> </tt> |
| 424 | <a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="myproxy.client.MyProxyClient.__cfg" class="py-name" href="#" onclick="return doclink('link-76', '__cfg', 'link-50');">__cfg</a></tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name"><a title="myproxy.utils.CaseSensitiveConfigParser" class="py-name" href="#" onclick="return doclink('link-77', 'CaseSensitiveConfigParser', 'link-8');">CaseSensitiveConfigParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 425 | <a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="myproxy.client.MyProxyClient.__cfg" class="py-name" href="#" onclick="return doclink('link-78', '__cfg', 'link-50');">__cfg</a></tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method myproxy.utils.openssl.OpenSSLConfig.read()=myproxy.utils.openssl.OpenSSLConfig-class.html#read"><a title="myproxy.utils.openssl.OpenSSLConfig.read" class="py-name" href="#" onclick="return doclink('link-79', 'read', 'link-79');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">cfgFilePath</tt><tt class="py-op">)</tt> </tt> |
| 426 | <a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 427 | <a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-name">cfgFilePath</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 428 | <a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="myproxy.client.MyProxyClient.__cfg" class="py-name" href="#" onclick="return doclink('link-80', '__cfg', 'link-50');">__cfg</a></tt> <tt class="py-op">=</tt> <tt class="py-name">cfg</tt> </tt> |
| 429 | <a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> </tt> |
| 430 | <a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="myproxy.client.MyProxyClient.__cfg" class="py-name" href="#" onclick="return doclink('link-81', '__cfg', 'link-50');">__cfg</a></tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-name">section</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 431 | <a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 432 | </div><a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> </tt> |
| 433 | <a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> <tt class="py-comment"># Get/Set Property methods</tt> </tt> |
| 434 | <a name="MyProxyClient._getHostname"></a><div id="MyProxyClient._getHostname-def"><a name="L370"></a><tt class="py-lineno"> 370</tt> <a class="py-toggle" href="#" id="MyProxyClient._getHostname-toggle" onclick="return toggle('MyProxyClient._getHostname');">-</a><tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getHostname">_getHostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 435 | </div><div id="MyProxyClient._getHostname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getHostname-expanded"><a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="myproxy.client.MyProxyClient.__hostname" class="py-name" href="#" onclick="return doclink('link-82', '__hostname', 'link-38');">__hostname</a></tt> </tt> |
| 436 | </div><a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> </tt> |
| 437 | <a name="MyProxyClient._setHostname"></a><div id="MyProxyClient._setHostname-def"><a name="L373"></a><tt class="py-lineno"> 373</tt> <a class="py-toggle" href="#" id="MyProxyClient._setHostname-toggle" onclick="return toggle('MyProxyClient._setHostname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setHostname">_setHostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 438 | </div><div id="MyProxyClient._setHostname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setHostname-expanded"><a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 439 | <a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for hostname "</tt> </tt> |
| 440 | <a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 441 | <a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="myproxy.client.MyProxyClient.__hostname" class="py-name" href="#" onclick="return doclink('link-83', '__hostname', 'link-38');">__hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 442 | </div><a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> </tt> |
| 443 | <a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt id="link-84" class="py-name"><a title="myproxy.client.MyProxyClient.hostname" class="py-name" href="#" onclick="return doclink('link-84', 'hostname', 'link-53');">hostname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-85" class="py-name" targets="Method myproxy.client.MyProxyClient._getHostname()=myproxy.client.MyProxyClient-class.html#_getHostname"><a title="myproxy.client.MyProxyClient._getHostname" class="py-name" href="#" onclick="return doclink('link-85', '_getHostname', 'link-85');">_getHostname</a></tt><tt class="py-op">,</tt> </tt> |
| 444 | <a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-86" class="py-name" targets="Method myproxy.client.MyProxyClient._setHostname()=myproxy.client.MyProxyClient-class.html#_setHostname"><a title="myproxy.client.MyProxyClient._setHostname" class="py-name" href="#" onclick="return doclink('link-86', '_setHostname', 'link-86');">_setHostname</a></tt><tt class="py-op">,</tt> </tt> |
| 445 | <a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"hostname of MyProxy server"</tt><tt class="py-op">)</tt> </tt> |
| 446 | <a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> </tt> |
| 447 | <a name="MyProxyClient._getPort"></a><div id="MyProxyClient._getPort-def"><a name="L383"></a><tt class="py-lineno"> 383</tt> <a class="py-toggle" href="#" id="MyProxyClient._getPort-toggle" onclick="return toggle('MyProxyClient._getPort');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getPort">_getPort</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 448 | </div><div id="MyProxyClient._getPort-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getPort-expanded"><a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="myproxy.client.MyProxyClient.__port" class="py-name" href="#" onclick="return doclink('link-87', '__port', 'link-39');">__port</a></tt> </tt> |
| 449 | </div><a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> </tt> |
| 450 | <a name="MyProxyClient._setPort"></a><div id="MyProxyClient._setPort-def"><a name="L386"></a><tt class="py-lineno"> 386</tt> <a class="py-toggle" href="#" id="MyProxyClient._setPort-toggle" onclick="return toggle('MyProxyClient._setPort');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setPort">_setPort</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 451 | </div><div id="MyProxyClient._setPort-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setPort-expanded"><a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 452 | <a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="myproxy.client.MyProxyClient.__port" class="py-name" href="#" onclick="return doclink('link-88', '__port', 'link-39');">__port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 453 | <a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 454 | <a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="myproxy.client.MyProxyClient.__port" class="py-name" href="#" onclick="return doclink('link-89', '__port', 'link-39');">__port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 455 | <a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 456 | <a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for port attribute"</tt><tt class="py-op">)</tt> </tt> |
| 457 | </div><a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> </tt> |
| 458 | <a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"> <tt id="link-90" class="py-name"><a title="myproxy.client.MyProxyClient.port" class="py-name" href="#" onclick="return doclink('link-90', 'port', 'link-56');">port</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-91" class="py-name" targets="Method myproxy.client.MyProxyClient._getPort()=myproxy.client.MyProxyClient-class.html#_getPort"><a title="myproxy.client.MyProxyClient._getPort" class="py-name" href="#" onclick="return doclink('link-91', '_getPort', 'link-91');">_getPort</a></tt><tt class="py-op">,</tt> </tt> |
| 459 | <a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-92" class="py-name" targets="Method myproxy.client.MyProxyClient._setPort()=myproxy.client.MyProxyClient-class.html#_setPort"><a title="myproxy.client.MyProxyClient._setPort" class="py-name" href="#" onclick="return doclink('link-92', '_setPort', 'link-92');">_setPort</a></tt><tt class="py-op">,</tt> </tt> |
| 460 | <a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Port number for MyProxy server"</tt><tt class="py-op">)</tt> </tt> |
| 461 | <a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"> </tt> |
| 462 | <a name="MyProxyClient._getServerDN"></a><div id="MyProxyClient._getServerDN-def"><a name="L398"></a><tt class="py-lineno"> 398</tt> <a class="py-toggle" href="#" id="MyProxyClient._getServerDN-toggle" onclick="return toggle('MyProxyClient._getServerDN');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getServerDN">_getServerDN</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 463 | </div><div id="MyProxyClient._getServerDN-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getServerDN-expanded"><a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="myproxy.client.MyProxyClient.__serverDN" class="py-name" href="#" onclick="return doclink('link-93', '__serverDN', 'link-40');">__serverDN</a></tt> </tt> |
| 464 | </div><a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> </tt> |
| 465 | <a name="MyProxyClient._setServerDN"></a><div id="MyProxyClient._setServerDN-def"><a name="L401"></a><tt class="py-lineno"> 401</tt> <a class="py-toggle" href="#" id="MyProxyClient._setServerDN-toggle" onclick="return toggle('MyProxyClient._setServerDN');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setServerDN">_setServerDN</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 466 | </div><div id="MyProxyClient._setServerDN-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setServerDN-expanded"><a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 467 | <a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for serverDN "</tt> </tt> |
| 468 | <a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 469 | <a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="myproxy.client.MyProxyClient.__serverDN" class="py-name" href="#" onclick="return doclink('link-94', '__serverDN', 'link-40');">__serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 470 | </div><a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"> </tt> |
| 471 | <a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"> <tt id="link-95" class="py-name"><a title="myproxy.client.MyProxyClient.serverDN" class="py-name" href="#" onclick="return doclink('link-95', 'serverDN', 'link-59');">serverDN</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-96" class="py-name" targets="Method myproxy.client.MyProxyClient._getServerDN()=myproxy.client.MyProxyClient-class.html#_getServerDN"><a title="myproxy.client.MyProxyClient._getServerDN" class="py-name" href="#" onclick="return doclink('link-96', '_getServerDN', 'link-96');">_getServerDN</a></tt><tt class="py-op">,</tt> </tt> |
| 472 | <a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-97" class="py-name" targets="Method myproxy.client.MyProxyClient._setServerDN()=myproxy.client.MyProxyClient-class.html#_setServerDN"><a title="myproxy.client.MyProxyClient._setServerDN" class="py-name" href="#" onclick="return doclink('link-97', '_setServerDN', 'link-97');">_setServerDN</a></tt><tt class="py-op">,</tt> </tt> |
| 473 | <a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Distinguished Name for MyProxy Server "</tt> </tt> |
| 474 | <a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"> <tt class="py-string">"Certificate"</tt><tt class="py-op">)</tt> </tt> |
| 475 | <a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"> </tt> |
| 476 | <a name="MyProxyClient._getOpenSSLConfFilePath"></a><div id="MyProxyClient._getOpenSSLConfFilePath-def"><a name="L412"></a><tt class="py-lineno"> 412</tt> <a class="py-toggle" href="#" id="MyProxyClient._getOpenSSLConfFilePath-toggle" onclick="return toggle('MyProxyClient._getOpenSSLConfFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getOpenSSLConfFilePath">_getOpenSSLConfFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 477 | </div><div id="MyProxyClient._getOpenSSLConfFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getOpenSSLConfFilePath-expanded"><a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-98', '__openSSLConfFilePath', 'link-41');">__openSSLConfFilePath</a></tt> </tt> |
| 478 | </div><a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"> </tt> |
| 479 | <a name="MyProxyClient._setOpenSSLConfFilePath"></a><div id="MyProxyClient._setOpenSSLConfFilePath-def"><a name="L415"></a><tt class="py-lineno"> 415</tt> <a class="py-toggle" href="#" id="MyProxyClient._setOpenSSLConfFilePath-toggle" onclick="return toggle('MyProxyClient._setOpenSSLConfFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setOpenSSLConfFilePath">_setOpenSSLConfFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 480 | </div><div id="MyProxyClient._setOpenSSLConfFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setOpenSSLConfFilePath-expanded"><a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 481 | <a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for "</tt> </tt> |
| 482 | <a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> <tt class="py-string">"openSSLConfFilePath attribute"</tt><tt class="py-op">)</tt> </tt> |
| 483 | <a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-99', '__openSSLConfFilePath', 'link-41');">__openSSLConfFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 484 | <a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfig" class="py-name" href="#" onclick="return doclink('link-100', '__openSSLConfig', 'link-51');">__openSSLConfig</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Variable myproxy.utils.openssl.OpenSSLConfig.filePath=myproxy.utils.openssl.OpenSSLConfig-class.html#filePath"><a title="myproxy.utils.openssl.OpenSSLConfig.filePath" class="py-name" href="#" onclick="return doclink('link-101', 'filePath', 'link-101');">filePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-102', '__openSSLConfFilePath', 'link-41');">__openSSLConfFilePath</a></tt> </tt> |
| 485 | <a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfig" class="py-name" href="#" onclick="return doclink('link-103', '__openSSLConfig', 'link-51');">__openSSLConfig</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="myproxy.utils.openssl.OpenSSLConfig.read" class="py-name" href="#" onclick="return doclink('link-104', 'read', 'link-79');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 486 | </div><a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"> </tt> |
| 487 | <a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"> <tt id="link-105" class="py-name" targets="Variable myproxy.client.MyProxyClient.openSSLConfFilePath=myproxy.client.MyProxyClient-class.html#openSSLConfFilePath"><a title="myproxy.client.MyProxyClient.openSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-105', 'openSSLConfFilePath', 'link-105');">openSSLConfFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-106" class="py-name" targets="Method myproxy.client.MyProxyClient._getOpenSSLConfFilePath()=myproxy.client.MyProxyClient-class.html#_getOpenSSLConfFilePath"><a title="myproxy.client.MyProxyClient._getOpenSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-106', '_getOpenSSLConfFilePath', 'link-106');">_getOpenSSLConfFilePath</a></tt><tt class="py-op">,</tt> </tt> |
| 488 | <a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-107" class="py-name" targets="Method myproxy.client.MyProxyClient._setOpenSSLConfFilePath()=myproxy.client.MyProxyClient-class.html#_setOpenSSLConfFilePath"><a title="myproxy.client.MyProxyClient._setOpenSSLConfFilePath" class="py-name" href="#" onclick="return doclink('link-107', '_setOpenSSLConfFilePath', 'link-107');">_setOpenSSLConfFilePath</a></tt><tt class="py-op">,</tt> </tt> |
| 489 | <a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"file path for OpenSSL config file"</tt><tt class="py-op">)</tt> </tt> |
| 490 | <a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> </tt> |
| 491 | <a name="MyProxyClient._getProxyCertMaxLifetime"></a><div id="MyProxyClient._getProxyCertMaxLifetime-def"><a name="L427"></a><tt class="py-lineno"> 427</tt> <a class="py-toggle" href="#" id="MyProxyClient._getProxyCertMaxLifetime-toggle" onclick="return toggle('MyProxyClient._getProxyCertMaxLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getProxyCertMaxLifetime">_getProxyCertMaxLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 492 | </div><div id="MyProxyClient._getProxyCertMaxLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getProxyCertMaxLifetime-expanded"><a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-108', '__proxyCertMaxLifetime', 'link-42');">__proxyCertMaxLifetime</a></tt> </tt> |
| 493 | </div><a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> </tt> |
| 494 | <a name="MyProxyClient._setProxyCertMaxLifetime"></a><div id="MyProxyClient._setProxyCertMaxLifetime-def"><a name="L430"></a><tt class="py-lineno"> 430</tt> <a class="py-toggle" href="#" id="MyProxyClient._setProxyCertMaxLifetime-toggle" onclick="return toggle('MyProxyClient._setProxyCertMaxLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setProxyCertMaxLifetime">_setProxyCertMaxLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 495 | </div><div id="MyProxyClient._setProxyCertMaxLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setProxyCertMaxLifetime-expanded"><a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 496 | <a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-109', '__proxyCertMaxLifetime', 'link-42');">__proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 497 | <a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"> </tt> |
| 498 | <a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 499 | <a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-110', '__proxyCertMaxLifetime', 'link-42');">__proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 500 | <a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 501 | <a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for proxyCertMaxLifetime "</tt> </tt> |
| 502 | <a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 503 | </div><a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"> </tt> |
| 504 | <a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"> <tt id="link-111" class="py-name" targets="Variable myproxy.client.MyProxyClient.proxyCertMaxLifetime=myproxy.client.MyProxyClient-class.html#proxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient.proxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-111', 'proxyCertMaxLifetime', 'link-111');">proxyCertMaxLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-112" class="py-name" targets="Method myproxy.client.MyProxyClient._getProxyCertMaxLifetime()=myproxy.client.MyProxyClient-class.html#_getProxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient._getProxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-112', '_getProxyCertMaxLifetime', 'link-112');">_getProxyCertMaxLifetime</a></tt><tt class="py-op">,</tt> </tt> |
| 505 | <a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-113" class="py-name" targets="Method myproxy.client.MyProxyClient._setProxyCertMaxLifetime()=myproxy.client.MyProxyClient-class.html#_setProxyCertMaxLifetime"><a title="myproxy.client.MyProxyClient._setProxyCertMaxLifetime" class="py-name" href="#" onclick="return doclink('link-113', '_setProxyCertMaxLifetime', 'link-113');">_setProxyCertMaxLifetime</a></tt><tt class="py-op">,</tt> </tt> |
| 506 | <a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Default max. lifetime allowed for "</tt> </tt> |
| 507 | <a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-string">"Proxy Certificate retrieved - used "</tt> </tt> |
| 508 | <a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-string">"by store method"</tt><tt class="py-op">)</tt> </tt> |
| 509 | <a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"> </tt> |
| 510 | <a name="MyProxyClient._getProxyCertLifetime"></a><div id="MyProxyClient._getProxyCertLifetime-def"><a name="L446"></a><tt class="py-lineno"> 446</tt> <a class="py-toggle" href="#" id="MyProxyClient._getProxyCertLifetime-toggle" onclick="return toggle('MyProxyClient._getProxyCertLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getProxyCertLifetime">_getProxyCertLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 511 | </div><div id="MyProxyClient._getProxyCertLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getProxyCertLifetime-expanded"><a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-114', '__proxyCertLifetime', 'link-45');">__proxyCertLifetime</a></tt> </tt> |
| 512 | </div><a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> </tt> |
| 513 | <a name="MyProxyClient._setProxyCertLifetime"></a><div id="MyProxyClient._setProxyCertLifetime-def"><a name="L449"></a><tt class="py-lineno"> 449</tt> <a class="py-toggle" href="#" id="MyProxyClient._setProxyCertLifetime-toggle" onclick="return toggle('MyProxyClient._setProxyCertLifetime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setProxyCertLifetime">_setProxyCertLifetime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 514 | </div><div id="MyProxyClient._setProxyCertLifetime-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setProxyCertLifetime-expanded"><a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 515 | <a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-115', '__proxyCertLifetime', 'link-45');">__proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 516 | <a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 517 | <a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="myproxy.client.MyProxyClient.__proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-116', '__proxyCertLifetime', 'link-45');">__proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 518 | <a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 519 | <a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting int type for proxyCertLifetime "</tt> </tt> |
| 520 | <a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 521 | </div><a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> </tt> |
| 522 | <a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt id="link-117" class="py-name" targets="Variable myproxy.client.MyProxyClient.proxyCertLifetime=myproxy.client.MyProxyClient-class.html#proxyCertLifetime"><a title="myproxy.client.MyProxyClient.proxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-117', 'proxyCertLifetime', 'link-117');">proxyCertLifetime</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-118" class="py-name" targets="Method myproxy.client.MyProxyClient._getProxyCertLifetime()=myproxy.client.MyProxyClient-class.html#_getProxyCertLifetime"><a title="myproxy.client.MyProxyClient._getProxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-118', '_getProxyCertLifetime', 'link-118');">_getProxyCertLifetime</a></tt><tt class="py-op">,</tt> </tt> |
| 523 | <a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-119" class="py-name" targets="Method myproxy.client.MyProxyClient._setProxyCertLifetime()=myproxy.client.MyProxyClient-class.html#_setProxyCertLifetime"><a title="myproxy.client.MyProxyClient._setProxyCertLifetime" class="py-name" href="#" onclick="return doclink('link-119', '_setProxyCertLifetime', 'link-119');">_setProxyCertLifetime</a></tt><tt class="py-op">,</tt> </tt> |
| 524 | <a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"Default proxy cert. lifetime used in "</tt> </tt> |
| 525 | <a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-string">"logon request"</tt><tt class="py-op">)</tt> </tt> |
| 526 | <a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> </tt> |
| 527 | <a name="MyProxyClient._getCACertFilePath"></a><div id="MyProxyClient._getCACertFilePath-def"><a name="L463"></a><tt class="py-lineno"> 463</tt> <a class="py-toggle" href="#" id="MyProxyClient._getCACertFilePath-toggle" onclick="return toggle('MyProxyClient._getCACertFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getCACertFilePath">_getCACertFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 528 | </div><div id="MyProxyClient._getCACertFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getCACertFilePath-expanded"><a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertFilePath" class="py-name" href="#" onclick="return doclink('link-120', '__caCertFilePath', 'link-48');">__caCertFilePath</a></tt> </tt> |
| 529 | </div><a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"> </tt> |
| 530 | <a name="MyProxyClient._setCACertFilePath"></a><div id="MyProxyClient._setCACertFilePath-def"><a name="L466"></a><tt class="py-lineno"> 466</tt> <a class="py-toggle" href="#" id="MyProxyClient._setCACertFilePath-toggle" onclick="return toggle('MyProxyClient._setCACertFilePath');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setCACertFilePath">_setCACertFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 531 | </div><div id="MyProxyClient._setCACertFilePath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setCACertFilePath-expanded"><a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-docstring">'''@type val: basestring</tt> </tt> |
| 532 | <a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt class="py-docstring"> @param val: file path for CA certificate to be used to verify </tt> </tt> |
| 533 | <a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt class="py-docstring"> MyProxy server certificate'''</tt> </tt> |
| 534 | <a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> </tt> |
| 535 | <a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 536 | <a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt> |
| 537 | <a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertFilePath" class="py-name" href="#" onclick="return doclink('link-121', '__caCertFilePath', 'link-48');">__caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 538 | <a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 539 | <a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertFilePath" class="py-name" href="#" onclick="return doclink('link-122', '__caCertFilePath', 'link-48');">__caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 540 | <a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"> </tt> |
| 541 | <a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 542 | <a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string type for caCertFilePath "</tt> </tt> |
| 543 | <a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 544 | </div><a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> </tt> |
| 545 | <a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"> <tt id="link-123" class="py-name" targets="Variable myproxy.client.MyProxyClient.caCertFilePath=myproxy.client.MyProxyClient-class.html#caCertFilePath"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-123', 'caCertFilePath', 'link-123');">caCertFilePath</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-124" class="py-name" targets="Method myproxy.client.MyProxyClient._getCACertFilePath()=myproxy.client.MyProxyClient-class.html#_getCACertFilePath"><a title="myproxy.client.MyProxyClient._getCACertFilePath" class="py-name" href="#" onclick="return doclink('link-124', '_getCACertFilePath', 'link-124');">_getCACertFilePath</a></tt><tt class="py-op">,</tt> </tt> |
| 546 | <a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-125" class="py-name" targets="Method myproxy.client.MyProxyClient._setCACertFilePath()=myproxy.client.MyProxyClient-class.html#_setCACertFilePath"><a title="myproxy.client.MyProxyClient._setCACertFilePath" class="py-name" href="#" onclick="return doclink('link-125', '_setCACertFilePath', 'link-125');">_setCACertFilePath</a></tt><tt class="py-op">,</tt> </tt> |
| 547 | <a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"CA certificate file path - MyProxy server "</tt> </tt> |
| 548 | <a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"> <tt class="py-string">"certificate must validate against it and/"</tt> </tt> |
| 549 | <a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-string">"or any present in caCertDir"</tt><tt class="py-op">)</tt> </tt> |
| 550 | <a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"> </tt> |
| 551 | <a name="MyProxyClient._getCACertDir"></a><div id="MyProxyClient._getCACertDir-def"><a name="L487"></a><tt class="py-lineno"> 487</tt> <a class="py-toggle" href="#" id="MyProxyClient._getCACertDir-toggle" onclick="return toggle('MyProxyClient._getCACertDir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getCACertDir">_getCACertDir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 552 | </div><div id="MyProxyClient._getCACertDir-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getCACertDir-expanded"><a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertDir" class="py-name" href="#" onclick="return doclink('link-126', '__caCertDir', 'link-49');">__caCertDir</a></tt> </tt> |
| 553 | </div><a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"> </tt> |
| 554 | <a name="MyProxyClient._setCACertDir"></a><div id="MyProxyClient._setCACertDir-def"><a name="L490"></a><tt class="py-lineno"> 490</tt> <a class="py-toggle" href="#" id="MyProxyClient._setCACertDir-toggle" onclick="return toggle('MyProxyClient._setCACertDir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_setCACertDir">_setCACertDir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 555 | </div><div id="MyProxyClient._setCACertDir-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._setCACertDir-expanded"><a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"> <tt class="py-docstring">'''Specify a directory containing PEM encoded CA certs. used for </tt> </tt> |
| 556 | <a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-docstring"> validation of MyProxy server certificate.</tt> </tt> |
| 557 | <a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 558 | <a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"><tt class="py-docstring"> Set to None to make OpenSSL.SSL.Context.load_verify_locations ignore</tt> </tt> |
| 559 | <a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"><tt class="py-docstring"> this parameter</tt> </tt> |
| 560 | <a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 561 | <a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"><tt class="py-docstring"> @type val: basestring/None</tt> </tt> |
| 562 | <a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"><tt class="py-docstring"> @param val: directory path'''</tt> </tt> |
| 563 | <a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> </tt> |
| 564 | <a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 565 | <a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt> |
| 566 | <a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertDir" class="py-name" href="#" onclick="return doclink('link-127', '__caCertDir', 'link-49');">__caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt> |
| 567 | <a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 568 | <a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertDir" class="py-name" href="#" onclick="return doclink('link-128', '__caCertDir', 'link-49');">__caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expandvars</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt> |
| 569 | <a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> </tt> |
| 570 | <a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 571 | <a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="myproxy.client.MyProxyClient.__caCertDir" class="py-name" href="#" onclick="return doclink('link-129', '__caCertDir', 'link-49');">__caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt> |
| 572 | <a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> |
| 573 | <a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">(</tt><tt class="py-string">"Expecting string or None type for caCertDir "</tt> </tt> |
| 574 | <a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-string">"attribute"</tt><tt class="py-op">)</tt> </tt> |
| 575 | </div><a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> </tt> |
| 576 | <a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> <tt id="link-130" class="py-name" targets="Variable myproxy.client.MyProxyClient.caCertDir=myproxy.client.MyProxyClient-class.html#caCertDir"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-130', 'caCertDir', 'link-130');">caCertDir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-131" class="py-name" targets="Method myproxy.client.MyProxyClient._getCACertDir()=myproxy.client.MyProxyClient-class.html#_getCACertDir"><a title="myproxy.client.MyProxyClient._getCACertDir" class="py-name" href="#" onclick="return doclink('link-131', '_getCACertDir', 'link-131');">_getCACertDir</a></tt><tt class="py-op">,</tt> </tt> |
| 577 | <a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-name">fset</tt><tt class="py-op">=</tt><tt id="link-132" class="py-name" targets="Method myproxy.client.MyProxyClient._setCACertDir()=myproxy.client.MyProxyClient-class.html#_setCACertDir"><a title="myproxy.client.MyProxyClient._setCACertDir" class="py-name" href="#" onclick="return doclink('link-132', '_setCACertDir', 'link-132');">_setCACertDir</a></tt><tt class="py-op">,</tt> </tt> |
| 578 | <a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"directory containing PEM encoded CA "</tt> </tt> |
| 579 | <a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-string">"certificates. Use along with caCertFilePath "</tt> </tt> |
| 580 | <a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-string">"setting to validate MyProxy server certificate"</tt><tt class="py-op">)</tt> </tt> |
| 581 | <a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> </tt> |
| 582 | <a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> </tt> |
| 583 | <a name="MyProxyClient._getOpenSSLConfig"></a><div id="MyProxyClient._getOpenSSLConfig-def"><a name="L519"></a><tt class="py-lineno"> 519</tt> <a class="py-toggle" href="#" id="MyProxyClient._getOpenSSLConfig-toggle" onclick="return toggle('MyProxyClient._getOpenSSLConfig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_getOpenSSLConfig">_getOpenSSLConfig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 584 | </div><div id="MyProxyClient._getOpenSSLConfig-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._getOpenSSLConfig-expanded"><a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> <tt class="py-docstring">"Get OpenSSLConfig object property method"</tt> </tt> |
| 585 | <a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="myproxy.client.MyProxyClient.__openSSLConfig" class="py-name" href="#" onclick="return doclink('link-133', '__openSSLConfig', 'link-51');">__openSSLConfig</a></tt> </tt> |
| 586 | </div><a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> </tt> |
| 587 | <a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> <tt id="link-134" class="py-name" targets="Variable myproxy.client.MyProxyClient.openSSLConfig=myproxy.client.MyProxyClient-class.html#openSSLConfig"><a title="myproxy.client.MyProxyClient.openSSLConfig" class="py-name" href="#" onclick="return doclink('link-134', 'openSSLConfig', 'link-134');">openSSLConfig</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt class="py-name">fget</tt><tt class="py-op">=</tt><tt id="link-135" class="py-name" targets="Method myproxy.client.MyProxyClient._getOpenSSLConfig()=myproxy.client.MyProxyClient-class.html#_getOpenSSLConfig"><a title="myproxy.client.MyProxyClient._getOpenSSLConfig" class="py-name" href="#" onclick="return doclink('link-135', '_getOpenSSLConfig', 'link-135');">_getOpenSSLConfig</a></tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">=</tt><tt class="py-string">"OpenSSLConfig object"</tt><tt class="py-op">)</tt> </tt> |
| 588 | <a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"> </tt> |
| 589 | <a name="MyProxyClient._initConnection"></a><div id="MyProxyClient._initConnection-def"><a name="L525"></a><tt class="py-lineno"> 525</tt> <a class="py-toggle" href="#" id="MyProxyClient._initConnection-toggle" onclick="return toggle('MyProxyClient._initConnection');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_initConnection">_initConnection</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt> |
| 590 | <a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> <tt class="py-param">certFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
| 591 | <a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"> <tt class="py-param">keyFile</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> |
| 592 | <a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-param">keyFilePassphrase</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 593 | </div><div id="MyProxyClient._initConnection-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._initConnection-expanded"><a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-docstring">"""Initialise connection setting up SSL context and client and</tt> </tt> |
| 594 | <a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"><tt class="py-docstring"> server side identity checks</tt> </tt> |
| 595 | <a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 596 | <a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"><tt class="py-docstring"> @type sslCertFile: basestring</tt> </tt> |
| 597 | <a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"><tt class="py-docstring"> @param sslCertFile: certificate for SSL client authentication. It may</tt> </tt> |
| 598 | <a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"><tt class="py-docstring"> be owner of a credential to be acted on or the concatenated proxy </tt> </tt> |
| 599 | <a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"><tt class="py-docstring"> certificate + proxy's signing cert. SSL client authentication is not </tt> </tt> |
| 600 | <a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"><tt class="py-docstring"> necessary for getDelegation / logon calls</tt> </tt> |
| 601 | <a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"><tt class="py-docstring"> @type sslKeyFile: basestring</tt> </tt> |
| 602 | <a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"><tt class="py-docstring"> @param sslKeyFile: client private key file</tt> </tt> |
| 603 | <a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"><tt class="py-docstring"> @type keyFilePassphrase: basestring</tt> </tt> |
| 604 | <a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"><tt class="py-docstring"> @param keyFilePassphrase: pass-phrase protecting private key if set</tt> </tt> |
| 605 | <a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 606 | <a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-comment"># Must be version 3 for MyProxy</tt> </tt> |
| 607 | <a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Context</tt><tt class="py-op">(</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">SSLv3_METHOD</tt><tt class="py-op">)</tt> </tt> |
| 608 | <a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> </tt> |
| 609 | <a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-136', 'caCertFilePath', 'link-123');">caCertFilePath</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-137', 'caCertDir', 'link-130');">caCertDir</a></tt><tt class="py-op">:</tt> </tt> |
| 610 | <a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">load_verify_locations</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="myproxy.client.MyProxyClient.caCertFilePath" class="py-name" href="#" onclick="return doclink('link-138', 'caCertFilePath', 'link-123');">caCertFilePath</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="myproxy.client.MyProxyClient.caCertDir" class="py-name" href="#" onclick="return doclink('link-139', 'caCertDir', 'link-130');">caCertDir</a></tt><tt class="py-op">)</tt> </tt> |
| 611 | <a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> </tt> |
| 612 | <a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">certFile</tt><tt class="py-op">:</tt> </tt> |
| 613 | <a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> |
| 614 | <a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">use_certificate_chain_file</tt><tt class="py-op">(</tt><tt class="py-name">certFile</tt><tt class="py-op">)</tt> </tt> |
| 615 | <a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">pwdCallback</tt><tt class="py-op">(</tt><tt class="py-param">passphraseMaxLen</tt><tt class="py-op">,</tt> </tt> |
| 616 | <a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-param">promptPassphraseTwice</tt><tt class="py-op">,</tt> </tt> |
| 617 | <a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> <tt class="py-param">passphrase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 618 | <a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">passphrase</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">passphraseMaxLen</tt><tt class="py-op">:</tt> </tt> |
| 619 | <a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> <tt id="link-140" class="py-name"><a title="myproxy.client.log" class="py-name" href="#" onclick="return doclink('link-140', 'log', 'link-1');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Passphrase length %d is greater than the '</tt> </tt> |
| 620 | <a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"> <tt class="py-string">'maximum length allowed %d'</tt><tt class="py-op">,</tt> </tt> |
| 621 | <a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">passphrase</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">passphraseMaxLen</tt><tt class="py-op">)</tt> </tt> |
| 622 | <a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt> |
| 623 | <a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> </tt> |
| 624 | <a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">passphrase</tt> </tt> |
| 625 | </div><a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> </tt> |
| 626 | <a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">keyFilePassphrase</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> |
| 627 | <a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_passwd_cb</tt><tt class="py-op">(</tt><tt class="py-name">pwdCallback</tt><tt class="py-op">,</tt> <tt class="py-name">keyFilePassphrase</tt><tt class="py-op">)</tt> </tt> |
| 628 | <a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> </tt> |
| 629 | <a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">use_privatekey_file</tt><tt class="py-op">(</tt><tt class="py-name">keyFile</tt><tt class="py-op">)</tt> </tt> |
| 630 | <a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt> |
| 631 | <a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-141" class="py-name" targets="Class myproxy.client.MyProxyClientConfigError=myproxy.client.MyProxyClientConfigError-class.html"><a title="myproxy.client.MyProxyClientConfigError" class="py-name" href="#" onclick="return doclink('link-141', 'MyProxyClientConfigError', 'link-141');">MyProxyClientConfigError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Loading certificate "</tt> </tt> |
| 632 | <a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> <tt class="py-string">"and private key for SSL "</tt> </tt> |
| 633 | <a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"> <tt class="py-string">"connection [also check CA "</tt> </tt> |
| 634 | <a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-string">"certificate settings]: %s"</tt> <tt class="py-op">%</tt> </tt> |
| 635 | <a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">format_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
| 636 | <a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"> </tt> |
| 637 | <a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> <tt class="py-comment"># Verify peer's (MyProxy server) certificate</tt> </tt> |
| 638 | <a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_verify</tt><tt class="py-op">(</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">VERIFY_PEER</tt><tt class="py-op">|</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">VERIFY_FAIL_IF_NO_PEER_CERT</tt><tt class="py-op">,</tt> </tt> |
| 639 | <a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="myproxy.client.MyProxyClient.__serverSSLCertVerify" class="py-name" href="#" onclick="return doclink('link-142', '__serverSSLCertVerify', 'link-66');">__serverSSLCertVerify</a></tt><tt class="py-op">)</tt> </tt> |
| 640 | <a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> </tt> |
| 641 | <a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> </tt> |
| 642 | <a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> <tt class="py-comment"># Disable for compatibility with myproxy server (er, globus)</tt> </tt> |
| 643 | <a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># globus doesn't handle this case, apparently, and instead</tt> </tt> |
| 644 | <a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># chokes in proxy delegation code</tt> </tt> |
| 645 | <a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">context</tt><tt class="py-op">.</tt><tt class="py-name">set_options</tt><tt class="py-op">(</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">OP_DONT_INSERT_EMPTY_FRAGMENTS</tt><tt class="py-op">)</tt> </tt> |
| 646 | <a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> </tt> |
| 647 | <a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-comment"># connect to myproxy server</tt> </tt> |
| 648 | <a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> |
| 649 | <a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> </tt> |
| 650 | <a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">conn</tt> </tt> |
| 651 | </div><a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> </tt> |
| 652 | <a name="MyProxyClient._createKeyPair"></a><div id="MyProxyClient._createKeyPair-def"><a name="L588"></a><tt class="py-lineno"> 588</tt> <a class="py-toggle" href="#" id="MyProxyClient._createKeyPair-toggle" onclick="return toggle('MyProxyClient._createKeyPair');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_createKeyPair">_createKeyPair</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nBitsForKey</tt><tt class="py-op">=</tt><tt id="link-143" class="py-name"><a title="myproxy.client.MyProxyClient.PRIKEY_NBITS" class="py-name" href="#" onclick="return doclink('link-143', 'PRIKEY_NBITS', 'link-30');">PRIKEY_NBITS</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 653 | </div><div id="MyProxyClient._createKeyPair-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._createKeyPair-expanded"><a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-docstring">"""Generate key pair and return as PEM encoded string</tt> </tt> |
| 654 | <a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"><tt class="py-docstring"> @type nBitsForKey: int</tt> </tt> |
| 655 | <a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"><tt class="py-docstring"> @param nBitsForKey: number of bits for private key generation - </tt> </tt> |
| 656 | <a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"><tt class="py-docstring"> default is 2048</tt> </tt> |
| 657 | <a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt> |
| 658 | <a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"><tt class="py-docstring"> @return: public/private key pair</tt> </tt> |
| 659 | <a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 660 | <a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-name">keyPair</tt> <tt class="py-op">=</tt> <tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">PKey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 661 | <a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-name">keyPair</tt><tt class="py-op">.</tt><tt class="py-name">generate_key</tt><tt class="py-op">(</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">TYPE_RSA</tt><tt class="py-op">,</tt> <tt class="py-name">nBitsForKey</tt><tt class="py-op">)</tt> </tt> |
| 662 | <a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> </tt> |
| 663 | <a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">keyPair</tt> </tt> |
| 664 | </div><a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> </tt> |
| 665 | <a name="MyProxyClient._createCertReq"></a><div id="MyProxyClient._createCertReq-def"><a name="L601"></a><tt class="py-lineno"> 601</tt> <a class="py-toggle" href="#" id="MyProxyClient._createCertReq-toggle" onclick="return toggle('MyProxyClient._createCertReq');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="myproxy.client.MyProxyClient-class.html#_createCertReq">_createCertReq</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">CN</tt><tt class="py-op">,</tt> <tt class="py-param">keyPair</tt><tt class="py-op">,</tt> <tt class="py-param">messageDigest</tt><tt class="py-op">=</tt><tt id="link-144" class="py-name"><a title="myproxy.client.MyProxyClient.MESSAGE_DIGEST_TYPE" class="py-name" href="#" onclick="return doclink('link-144', 'MESSAGE_DIGEST_TYPE', 'link-31');">MESSAGE_DIGEST_TYPE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> |
| 666 | </div><div id="MyProxyClient._createCertReq-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MyProxyClient._createCertReq-expanded"><a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a certificate request.</tt> </tt> |
| 667 | <a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> |
| 668 | <a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"><tt class="py-docstring"> @type CN: basestring</tt> </tt> |
| 669 | <a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> @param CN: Common Name for certificate - effectively the same as the</tt> </tt> |
| 670 | <a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> username for the MyProxy credential</tt> </tt> |
| 671 | <a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"><tt class="py-docstring"> @type keyPair: string/None</tt> </tt> |
| 672 | <a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"><tt class="py-docstring"> @param keyPair: public/private key pair</tt> </tt> |
| 673 | <a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"><tt class="py-docstring"> @type messageDigest: basestring</tt> </tt> |
| 674 | <a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"><tt class="py-docstring"> @param messageDigest: message digest type - default is MD5</tt> </tt> |
| 675 | <a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple</tt> </tt> |
| 676 | <a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-docstring"> @return certificate request PEM text and private key PEM text</tt> </tt> |
| 677 | <a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> |
| 678 | <a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> </tt> |
| 679 | <a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-comment"># Check all required certifcate request DN parameters are set </tt> </tt> |
| 680 | <a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Create certificate request</tt> </tt> |
| 681 | <a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">certReq</tt> <tt class="py-op">=</tt> <tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">X509Req</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> |
| 682 | <a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> </tt> |
| 683 | <a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"> <tt class="py-comment"># Create public key object</tt> </tt> |
| 684 | <a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">certReq</tt><tt class="py-op">.</tt><tt class="py-name">set_pubkey</tt><tt class="py-op">(</tt><tt class="py-name">keyPair</tt><tt class="py-op">)</tt> </tt> |
| 685 | <a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> </tt> |
| 686 | <a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt class="py-comment"># Add the public key to the request</tt> </tt> |
| 687 | <a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">certReq</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt class="py-name">keyPair</tt><tt class="py-op">,</tt> <tt class="py-name">messageDigest</tt><tt class="py-op">)</tt> </tt> |
| 688 | <a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> </tt> |
| 689 | <a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-name">derCertReq</tt> <tt class="py-op">=</tt> <tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">dump_certificate_request</tt><tt class="py-op">(</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">FILETYPE_ASN1</tt><tt class="py-op">,</t |