Author: Carl Friedrich Bolz <[email protected]>
Branch: space-newtext
Changeset: r88125:86e143f3511c
Date: 2016-11-03 16:09 +0100
http://bitbucket.org/pypy/pypy/changeset/86e143f3511c/
Log: _ssl
diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -127,13 +127,13 @@
w_exception_class = w_errtype or get_exception_class(space, 'w_sslerror')
if errno or errcode:
w_exception = space.call_function(w_exception_class,
- space.wrap(errno), space.wrap(msg))
+ space.newint(errno),
space.newtext(msg))
else:
- w_exception = space.call_function(w_exception_class, space.wrap(msg))
- space.setattr(w_exception, space.wrap("reason"),
- space.wrap(reason_str) if reason_str else space.w_None)
- space.setattr(w_exception, space.wrap("library"),
- space.wrap(lib_str) if lib_str else space.w_None)
+ w_exception = space.call_function(w_exception_class,
space.newtext(msg))
+ space.setattr(w_exception, space.newtext("reason"),
+ space.newtext_or_none(reason_str))
+ space.setattr(w_exception, space.newtext("library"),
+ space.newtext_or_none(lib_str))
return OperationError(w_exception_class, w_exception)
class SSLNpnProtocols(object):
@@ -244,7 +244,7 @@
on some platforms before using the ssl() function."""
res = libssl_RAND_status()
- return space.wrap(res)
+ return space.newint(res)
if HAVE_OPENSSL_RAND_EGD:
@unwrap_spec(path=str)
@@ -260,7 +260,7 @@
raise ssl_error(space,
"EGD connection failed or EGD did not return "
"enough data to seed the PRNG")
- return space.wrap(bytes)
+ return space.newint(bytes)
else:
# Dummy func for platforms missing RAND_egd(). Most likely LibreSSL.
@unwrap_spec(path=str)
@@ -298,7 +298,7 @@
if not space.is_none(w_hostname):
if space.isinstance_w(w_hostname, space.w_unicode):
w_hostname = space.call_method(w_hostname, "encode",
- space.wrap("idna"))
+ space.newtext("idna"))
libssl_SSL_set_tlsext_host_name(
self.ssl, space.bytes_w(w_hostname))
@@ -377,7 +377,7 @@
break
if num_bytes > 0:
- return space.wrap(num_bytes)
+ return space.newint(num_bytes)
else:
raise _ssl_seterror(space, self, num_bytes)
@@ -389,7 +389,7 @@
count = libssl_SSL_pending(self.ssl)
if count < 0:
raise _ssl_seterror(space, self, count)
- return space.wrap(count)
+ return space.newint(count)
@unwrap_spec(num_bytes=int)
def read(self, space, num_bytes, w_buffer=None):
@@ -406,7 +406,7 @@
"Underlying socket too large for select().")
elif sockstate == SOCKET_HAS_BEEN_CLOSED:
if libssl_SSL_get_shutdown(self.ssl) == SSL_RECEIVED_SHUTDOWN:
- return space.wrap('')
+ return space.newbytes('')
raise ssl_error(space,
"Socket closed without SSL shutdown handshake")
@@ -434,9 +434,9 @@
elif (err == SSL_ERROR_ZERO_RETURN and
libssl_SSL_get_shutdown(self.ssl) ==
SSL_RECEIVED_SHUTDOWN):
if rwbuffer:
- return space.wrap(0)
+ return space.newint(0)
else:
- return space.wrap("")
+ return space.newbytes("")
else:
sockstate = SOCKET_OPERATION_OK
@@ -457,9 +457,9 @@
if rwbuffer:
rwbuffer.setslice(0, result)
- return space.wrap(count)
+ return space.newint(count)
else:
- return space.wrap(result)
+ return space.newbytes(result)
def _refresh_nonblocking(self, space):
# just in case the blocking state of the socket has been changed
@@ -575,10 +575,10 @@
return space.w_None
name = libssl_SSL_CIPHER_get_name(current)
- w_name = space.wrap(rffi.charp2str(name)) if name else space.w_None
+ w_name = space.newtext(rffi.charp2str(name)) if name else space.w_None
proto = libssl_SSL_CIPHER_get_version(current)
- w_proto = space.wrap(rffi.charp2str(proto)) if proto else space.w_None
+ w_proto = space.newtext(rffi.charp2str(proto)) if proto else
space.w_None
bits = libssl_SSL_CIPHER_get_bits(current,
lltype.nullptr(rffi.INTP.TO))
@@ -623,7 +623,7 @@
libssl_SSL_get0_next_proto_negotiated(self.ssl,
out_ptr, len_ptr)
if out_ptr[0]:
- return space.wrap(
+ return space.newtext(
rffi.charpsize2str(out_ptr[0], intmask(len_ptr[0])))
def selected_alpn_protocol(self, space):
@@ -635,7 +635,7 @@
libssl_SSL_get0_alpn_selected(self.ssl,
out_ptr, len_ptr)
if out_ptr[0]:
- return space.wrap(
+ return space.newtext(
rffi.charpsize2str(out_ptr[0], intmask(len_ptr[0])))
def compression_w(self, space):
@@ -650,7 +650,7 @@
short_name = libssl_COMP_get_name(comp_method)
if not short_name:
return space.w_None
- return space.wrap(rffi.charp2str(short_name))
+ return space.newtext(rffi.charp2str(short_name))
def version_w(self, space):
if not self.ssl:
@@ -658,7 +658,7 @@
version = libssl_SSL_get_version(self.ssl)
if not version:
return space.w_None
- return space.wrap(rffi.charp2str(version))
+ return space.newtext(rffi.charp2str(version))
def tls_unique_cb_w(self, space):
"""Returns the 'tls-unique' channel binding data, as defined by RFC
5929.
@@ -728,14 +728,14 @@
w_peer = _create_tuple_for_X509_NAME(
space, libssl_X509_get_subject_name(certificate))
- space.setitem(w_retval, space.wrap("subject"), w_peer)
+ space.setitem(w_retval, space.newtext("subject"), w_peer)
w_issuer = _create_tuple_for_X509_NAME(
space, libssl_X509_get_issuer_name(certificate))
- space.setitem(w_retval, space.wrap("issuer"), w_issuer)
+ space.setitem(w_retval, space.newtext("issuer"), w_issuer)
- space.setitem(w_retval, space.wrap("version"),
- space.wrap(libssl_X509_get_version(certificate) + 1))
+ space.setitem(w_retval, space.newtext("version"),
+ space.newint(libssl_X509_get_version(certificate) + 1))
biobuf = libssl_BIO_new(libssl_BIO_s_mem())
try:
@@ -749,8 +749,8 @@
if length < 0:
raise _ssl_seterror(space, None, length)
- w_serial = space.wrap(rffi.charpsize2str(buf, length))
- space.setitem(w_retval, space.wrap("serialNumber"), w_serial)
+ w_serial = space.newtext(rffi.charpsize2str(buf, length))
+ space.setitem(w_retval, space.newtext("serialNumber"), w_serial)
libssl_BIO_reset(biobuf)
notBefore = libssl_X509_get_notBefore(certificate)
@@ -759,8 +759,8 @@
length = libssl_BIO_gets(biobuf, buf, 99)
if length < 0:
raise _ssl_seterror(space, None, length)
- w_date = space.wrap(rffi.charpsize2str(buf, length))
- space.setitem(w_retval, space.wrap("notBefore"), w_date)
+ w_date = space.newtext(rffi.charpsize2str(buf, length))
+ space.setitem(w_retval, space.newtext("notBefore"), w_date)
libssl_BIO_reset(biobuf)
notAfter = libssl_X509_get_notAfter(certificate)
@@ -769,28 +769,28 @@
length = libssl_BIO_gets(biobuf, buf, 99)
if length < 0:
raise _ssl_seterror(space, None, length)
- w_date = space.wrap(rffi.charpsize2str(buf, length))
- space.setitem(w_retval, space.wrap("notAfter"), w_date)
+ w_date = space.newtext(rffi.charpsize2str(buf, length))
+ space.setitem(w_retval, space.newtext("notAfter"), w_date)
finally:
libssl_BIO_free(biobuf)
# Now look for subjectAltName
w_alt_names = _get_peer_alt_names(space, certificate)
if w_alt_names is not space.w_None:
- space.setitem(w_retval, space.wrap("subjectAltName"), w_alt_names)
+ space.setitem(w_retval, space.newtext("subjectAltName"), w_alt_names)
# Authority Information Access: OCSP URIs
w_ocsp = _get_aia_uri(space, certificate, NID_ad_OCSP)
if not space.is_none(w_ocsp):
- space.setitem(w_retval, space.wrap("OCSP"), w_ocsp)
+ space.setitem(w_retval, space.newtext("OCSP"), w_ocsp)
w_issuers = _get_aia_uri(space, certificate, NID_ad_ca_issuers)
if not space.is_none(w_issuers):
- space.setitem(w_retval, space.wrap("caIssuers"), w_issuers)
+ space.setitem(w_retval, space.newtext("caIssuers"), w_issuers)
# CDP (CRL distribution points)
w_cdp = _get_crl_dp(space, certificate)
if not space.is_none(w_cdp):
- space.setitem(w_retval, space.wrap("crlDistributionPoints"), w_cdp)
+ space.setitem(w_retval, space.newtext("crlDistributionPoints"), w_cdp)
return w_retval
@@ -877,18 +877,18 @@
# attributes
dirname = libssl_pypy_GENERAL_NAME_dirn(name)
w_t = space.newtuple([
- space.wrap("DirName"),
+ space.newtext("DirName"),
_create_tuple_for_X509_NAME(space, dirname)
])
elif gntype in (GEN_EMAIL, GEN_DNS, GEN_URI):
# GENERAL_NAME_print() doesn't handle NULL bytes in
# ASN1_string correctly, CVE-2013-4238
if gntype == GEN_EMAIL:
- v = space.wrap("email")
+ v = space.newtext("email")
elif gntype == GEN_DNS:
- v = space.wrap("DNS")
+ v = space.newtext("DNS")
elif gntype == GEN_URI:
- v = space.wrap("URI")
+ v = space.newtext("URI")
else:
assert False
as_ = libssl_pypy_GENERAL_NAME_dirn(name)
@@ -896,12 +896,12 @@
buf = libssl_ASN1_STRING_data(as_)
length = libssl_ASN1_STRING_length(as_)
w_t = space.newtuple([
- v, space.wrap(rffi.charpsize2str(buf, length))])
+ v, space.newtext(rffi.charpsize2str(buf, length))])
else:
# for everything else, we use the OpenSSL print form
if gntype not in (GEN_OTHERNAME, GEN_X400,
GEN_EDIPARTY,
GEN_IPADD, GEN_RID):
- space.warn(space.wrap("Unknown general name type"),
+ space.warn(space.newtext("Unknown general name
type"),
space.w_RuntimeWarning)
libssl_BIO_reset(biobuf)
libssl_GENERAL_NAME_print(biobuf, name)
@@ -912,8 +912,8 @@
v = rffi.charpsize2str(buf, length)
v1, v2 = v.split(':', 1)
- w_t = space.newtuple([space.wrap(v1),
- space.wrap(v2)])
+ w_t = space.newtuple([space.newtext(v1),
+ space.newtext(v2)])
alt_names_w.append(w_t)
finally:
@@ -932,7 +932,7 @@
length = libssl_OBJ_obj2txt(buf, X509_NAME_MAXLEN, name, 0)
if length < 0:
raise _ssl_seterror(space, None, 0)
- w_name = space.wrap(rffi.charpsize2str(buf, length))
+ w_name = space.newtext(rffi.charpsize2str(buf, length))
with lltype.scoped_alloc(rffi.CCHARPP.TO, 1) as buf_ptr:
length = libssl_ASN1_STRING_to_UTF8(buf_ptr, value)
@@ -940,7 +940,7 @@
raise _ssl_seterror(space, None, 0)
try:
w_value = space.newbytes(rffi.charpsize2str(buf_ptr[0], length))
- w_value = space.call_method(w_value, "decode", space.wrap("utf-8"))
+ w_value = space.call_method(w_value, "decode",
space.newtext("utf-8"))
finally:
libssl_OPENSSL_free(buf_ptr[0])
@@ -967,7 +967,7 @@
uri = libssl_pypy_GENERAL_NAME_uri(name)
length = intmask(uri.c_length)
s_uri = rffi.charpsize2str(uri.c_data, length)
- result_w.append(space.wrap(s_uri))
+ result_w.append(space.newtext(s_uri))
return space.newtuple(result_w[:])
finally:
libssl_AUTHORITY_INFO_ACCESS_free(info)
@@ -995,7 +995,7 @@
uri = libssl_pypy_GENERAL_NAME_uri(name)
length = intmask(uri.c_length)
s_uri = rffi.charpsize2str(uri.c_data, length)
- cdp_w.append(space.wrap(s_uri))
+ cdp_w.append(space.newtext(s_uri))
finally:
if OPENSSL_VERSION_NUMBER < 0x10001000:
libssl_sk_DIST_POINT_free(dps)
@@ -1120,10 +1120,10 @@
errcode=errcode)
def SSLError_descr_str(space, w_exc):
- w_strerror = space.getattr(w_exc, space.wrap("strerror"))
+ w_strerror = space.getattr(w_exc, space.newtext("strerror"))
if not space.is_none(w_strerror):
return w_strerror
- return space.str(space.getattr(w_exc, space.wrap("args")))
+ return space.str(space.getattr(w_exc, space.newtext("args")))
class Cache:
@@ -1131,8 +1131,8 @@
w_socketerror = interp_socket.get_error(space, "error")
self.w_sslerror = space.new_exception_class(
"_ssl.SSLError", w_socketerror)
- space.setattr(self.w_sslerror, space.wrap('__str__'),
- space.wrap(interp2app(SSLError_descr_str)))
+ space.setattr(self.w_sslerror, space.newtext('__str__'),
+ interp2app(SSLError_descr_str).__spacebind__(space))
self.w_sslzeroreturnerror = space.new_exception_class(
"_ssl.SSLZeroReturnError", self.w_sslerror)
self.w_sslwantreaderror = space.new_exception_class(
@@ -1246,7 +1246,7 @@
w_servername = space.newbytes(rffi.charp2str(servername))
try:
w_servername_idna = space.call_method(
- w_servername, 'decode', space.wrap('idna'))
+ w_servername, 'decode', space.newtext('idna'))
except OperationError as e:
e.write_unraisable(space, "undecodable server name")
ad[0] = rffi.cast(rffi.INT, SSL_AD_INTERNAL_ERROR)
@@ -1344,7 +1344,7 @@
def session_stats_w(self, space):
w_stats = space.newdict()
for name, ssl_func in SSL_CTX_STATS:
- w_value = space.wrap(ssl_func(self.ctx))
+ w_value = space.newint(ssl_func(self.ctx))
space.setitem_str(w_stats, name, w_value)
return w_stats
@@ -1400,7 +1400,7 @@
store = libssl_SSL_CTX_get_cert_store(self.ctx)
param = libssl_X509_STORE_get0_param(store)
flags = libssl_X509_VERIFY_PARAM_get_flags(param)
- return space.wrap(flags)
+ return space.newint(flags)
def descr_set_verify_flags(self, space, w_obj):
new_flags = space.int_w(w_obj)
@@ -1642,11 +1642,11 @@
pass
w_result = space.newdict()
space.setitem(w_result,
- space.wrap('x509'), space.wrap(x509))
+ space.newtext('x509'), space.newint(x509))
space.setitem(w_result,
- space.wrap('x509_ca'), space.wrap(x509_ca))
+ space.newtext('x509_ca'), space.newint(x509_ca))
space.setitem(w_result,
- space.wrap('crl'), space.wrap(crl))
+ space.newtext('crl'), space.newint(crl))
return w_result
@unwrap_spec(protos='bufferstr')
@@ -1759,12 +1759,12 @@
if buflen < 0:
raise _ssl_seterror(space, None, 0)
if buflen:
- w_buf = space.wrap(buf.str(buflen))
+ w_buf = space.newtext(buf.str(buflen))
else:
w_buf = space.w_None
- w_sn = space.wrap(rffi.charp2str(libssl_OBJ_nid2sn(nid)))
- w_ln = space.wrap(rffi.charp2str(libssl_OBJ_nid2ln(nid)))
- return space.newtuple([space.wrap(nid), w_sn, w_ln, w_buf])
+ w_sn = space.newtext(rffi.charp2str(libssl_OBJ_nid2sn(nid)))
+ w_ln = space.newtext(rffi.charp2str(libssl_OBJ_nid2ln(nid)))
+ return space.newtuple([space.newint(nid), w_sn, w_ln, w_buf])
@unwrap_spec(txt=str, name=bool)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit