Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: third_party/tlslite/tlslite/tlsrecordlayer.py

Issue 280853002: Preserve transport errors for OpenSSL sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rephrase a lot of comments. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Authors: 1 # Authors:
2 # Trevor Perrin 2 # Trevor Perrin
3 # Google (adapted by Sam Rushing) - NPN support 3 # Google (adapted by Sam Rushing) - NPN support
4 # Martin von Loewis - python 3 port 4 # Martin von Loewis - python 3 port
5 # 5 #
6 # See the LICENSE file for legal information regarding use of this file. 6 # See the LICENSE file for legal information regarding use of this file.
7 7
8 """Helper class for TLSConnection.""" 8 """Helper class for TLSConnection."""
9 from __future__ import generators 9 from __future__ import generators
10 10
11 from .utils.compat import * 11 from .utils.compat import *
12 from .utils.cryptomath import * 12 from .utils.cryptomath import *
13 from .utils.cipherfactory import createAES, createRC4, createTripleDES 13 from .utils.cipherfactory import createAES, createRC4, createTripleDES
14 from .utils.codec import * 14 from .utils.codec import *
15 from .errors import * 15 from .errors import *
16 from .messages import * 16 from .messages import *
17 from .mathtls import * 17 from .mathtls import *
18 from .constants import * 18 from .constants import *
19 from .utils.cryptomath import getRandomBytes 19 from .utils.cryptomath import getRandomBytes
20 20
21 import socket 21 import socket
22 import struct
22 import errno 23 import errno
23 import traceback 24 import traceback
24 25
25 class _ConnectionState(object): 26 class _ConnectionState(object):
26 def __init__(self): 27 def __init__(self):
27 self.macContext = None 28 self.macContext = None
28 self.encContext = None 29 self.encContext = None
29 self.seqnum = 0 30 self.seqnum = 0
30 31
31 def getSeqNumBytes(self): 32 def getSeqNumBytes(self):
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 self.session.resumable = False 517 self.session.resumable = False
517 518
518 519
519 def _sendError(self, alertDescription, errorStr=None): 520 def _sendError(self, alertDescription, errorStr=None):
520 alert = Alert().create(alertDescription, AlertLevel.fatal) 521 alert = Alert().create(alertDescription, AlertLevel.fatal)
521 for result in self._sendMsg(alert): 522 for result in self._sendMsg(alert):
522 yield result 523 yield result
523 self._shutdown(False) 524 self._shutdown(False)
524 raise TLSLocalAlert(alert, errorStr) 525 raise TLSLocalAlert(alert, errorStr)
525 526
527 def _abruptClose(self, reset=False):
528 if reset:
529 #Set an SO_LINGER timeout of 0 to send a TCP RST.
530 self.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
531 struct.pack('ii', 1, 0))
532 self._shutdown(False)
533
526 def _sendMsgs(self, msgs): 534 def _sendMsgs(self, msgs):
527 randomizeFirstBlock = True 535 randomizeFirstBlock = True
528 for msg in msgs: 536 for msg in msgs:
529 for result in self._sendMsg(msg, randomizeFirstBlock): 537 for result in self._sendMsg(msg, randomizeFirstBlock):
530 yield result 538 yield result
531 randomizeFirstBlock = True 539 randomizeFirstBlock = True
532 540
533 def _sendMsg(self, msg, randomizeFirstBlock = True): 541 def _sendMsg(self, msg, randomizeFirstBlock = True):
534 #Whenever we're connected and asked to send an app data message, 542 #Whenever we're connected and asked to send an app data message,
535 #we first send the first byte of the message. This prevents 543 #we first send the first byte of the message. This prevents
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 imac_md5.update(compatHMAC(label + masterSecret + bytearray([0x36]*48))) 1152 imac_md5.update(compatHMAC(label + masterSecret + bytearray([0x36]*48)))
1145 imac_sha.update(compatHMAC(label + masterSecret + bytearray([0x36]*40))) 1153 imac_sha.update(compatHMAC(label + masterSecret + bytearray([0x36]*40)))
1146 1154
1147 md5Bytes = MD5(masterSecret + bytearray([0x5c]*48) + \ 1155 md5Bytes = MD5(masterSecret + bytearray([0x5c]*48) + \
1148 bytearray(imac_md5.digest())) 1156 bytearray(imac_md5.digest()))
1149 shaBytes = SHA1(masterSecret + bytearray([0x5c]*40) + \ 1157 shaBytes = SHA1(masterSecret + bytearray([0x5c]*40) + \
1150 bytearray(imac_sha.digest())) 1158 bytearray(imac_sha.digest()))
1151 1159
1152 return md5Bytes + shaBytes 1160 return md5Bytes + shaBytes
1153 1161
OLDNEW
« net/socket/ssl_client_socket_openssl.cc ('K') | « third_party/tlslite/tlslite/tlsconnection.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698