2017-02-20 219 views
0
from OpenSSL import SSL 
import sys, os, select, socket 

cudp = SSL.Context(SSL.DTLSv1_METHOD) 

錯誤:屬性錯誤: '模塊' 對象有沒有屬性 'DTLSv1_METHOD'

Attribute Error: 'module' object has no attribute 'DTLSv1_METHOD' 

的Python 2.7.6

OpenSSL的1.1.0e

+0

你爲什麼認爲'SSL.DTLSv1_METHOD'是一件事情? – user2357112

+0

@ user2357112 https://gist.github.com/manuels/8852953 – mwweb

+0

它看起來不像代碼實際工作。第一個評論是一些人說他們很確定它不起作用。 [docs](http://www.pyopenssl.org/en/stable/api/ssl.html)或[pyopenssl的GitHub存儲庫](https://github.com/pyca/pyopenssl/)中不會出現此類內容搜索?UTF8 =%E2%9C%93&q = DTLSv1_METHOD)。 – user2357112

回答

0

Attribute Error: 'module' object has no attribute 'DTLSv1_METHOD'

我不知道Python提供了什麼,但讓我告訴你OpenSSL正在做什麼。從下面,也許你可以試試DTLS_method,DTLS_server_methodDTLS_client_method

OpenSSL的GitHub上:

$ git clone https://github.com/openssl/openssl.git 
$ cd openssl 

OpenSSL的1.1.0(主尖):

$ git checkout master -f 
$ grep -IR DTLS * | grep METHOD | grep ssl.h 
... 
include/openssl/ssl.h:# ifndef OPENSSL_NO_DTLS1_METHOD 
include/openssl/ssl.h:# ifndef OPENSSL_NO_DTLS1_METHOD 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ 
include/openssl/ssl.h:# ifndef OPENSSL_NO_DTLS1_2_METHOD 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ 
include/openssl/ssl.h:DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ 
include/openssl/ssl.h:__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ 
include/openssl/ssl.h:__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ 
include/openssl/ssl.h:__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ 

和OpenSSL 1.0.2:

$ git checkout OpenSSL_1_0_2-stable 
$ grep -IR DTLS * | grep METHOD | grep ssl.h 
ssl/ssl.h:const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ 
ssl/ssl.h:const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ 
ssl/ssl.h:const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ 
ssl/ssl.h:const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ 
ssl/ssl.h:const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ 
ssl/ssl.h:const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ 
ssl/ssl.h:const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ 
ssl/ssl.h:const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ 
ssl/ssl.h:const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ 

您可以找到OpenSSL手冊網頁。

+0

嗨..沒有仍然沒有工作,我試過DTLS_method,DTLS_server_method或DTLS_client_method仍然是相同的 – mwweb

相關問題