Example #1
0
    def compareTsUris(self, url1, url2, segmentIndex, aesKey,
                      continuityCounters):
        result = True
        self.writeOutput('Info: comparing %s %s' % (url1, url2))

        code1, tsData1 = self.retrieveUrl(url1)
        if code1 == 200:
            if aesKey != None:
                tsData1, error = decryptTsSegment(self.tsData1, aesKey,
                                                  segmentIndex)
                if tsData1 == None:
                    self.writeOutput(error)
                    return False

            if not self.testContinuity(tsData1, continuityCounters):
                result = False
        else:
            continuityCounters.clear()

        for attempt in xrange(RETRIES):
            code2, tsData2 = self.retrieveUrl(url2)

            if code1 != code2:
                if code1 != 0 and code2 != 0:
                    self.writeOutput(
                        'Error: got different status codes %s vs %s (ts)' %
                        (code1, code2))
                return False

            messages = []
            curResult = True
            if not self.compareStream(tsData1, tsData2, 'a', messages):
                curResult = False
            if not self.compareStream(tsData1, tsData2, 'v', messages):
                curResult = False
            if curResult or attempt + 1 >= RETRIES:
                break
            self.writeOutput('Info: got errors, retrying...')

        self.writeOutput('Info: size diff is %s' %
                         (len(tsData2) - len(tsData1)))

        for message in messages:
            self.writeOutput(message)
        return result and curResult
Example #2
0
	def compareTsUris(self, url1, url2, segmentIndex, aesKey, continuityCounters):
		result = True
		self.writeOutput('Info: comparing %s %s' % (url1, url2))

		code1, tsData1 = self.retrieveUrl(url1)
		if code1 == 200:
			if aesKey != None:
				tsData1, error = decryptTsSegment(self.tsData1, aesKey, segmentIndex)
				if tsData1 == None:
					self.writeOutput(error)
					return False
			
			if not self.testContinuity(tsData1, continuityCounters):
				result = False
		else:
			continuityCounters.clear()
			
		for attempt in xrange(RETRIES):
			code2, tsData2 = self.retrieveUrl(url2)
			
			if code1 != code2:
				if code1 != 0 and code2 != 0:
					self.writeOutput('Error: got different status codes %s vs %s (ts)' % (code1, code2))
				return False
			
			messages = []
			curResult = True
			if not self.compareStream(tsData1, tsData2, 'a', messages):
				curResult = False
			if not self.compareStream(tsData1, tsData2, 'v', messages):
				curResult = False
			if curResult or attempt + 1 >= RETRIES:
				break
			self.writeOutput('Info: got errors, retrying...')
		
		self.writeOutput('Info: size diff is %s' % (len(tsData2) - len(tsData1)))
		
		for message in messages:
			self.writeOutput(message)
		return result and curResult
import os

if len(sys.argv) < 5:
	print 'Usage:\n\tpython %s <input file> <output file> <aes key hex> <segment index (one based) or 0xIV>' % os.path.basename(__file__)
	sys.exit(1)

INPUT_FILE = sys.argv[1]
OUTPUT_FILE = sys.argv[2]
ENC_KEY = sys.argv[3]
ENC_IV = sys.argv[4]

# key
if ENC_KEY.startswith('0x'):
	ENC_KEY = ENC_KEY[2:]
ENC_KEY = ENC_KEY.decode('hex')

# iv
if ENC_IV.startswith('0x'):
	ENC_IV = ENC_IV[2:]
	ENC_IV = ENC_IV.decode('hex')
else:
	segmentIndex = int(ENC_IV)
	ENC_IV = '\0' * 12 + struct.pack('>L', segmentIndex)

encryptedData = file(INPUT_FILE, 'rb').read()
decryptedData, error = decryptTsSegment(encryptedData, ENC_KEY, ENC_IV)
if decryptedData == None:
	print error
	sys.exit(1)
file(OUTPUT_FILE, 'wb').write(decryptedData)
from ts_utils import decryptTsSegment
import sys

if len(sys.argv) < 5:
	print 'Usage:\n\tphp encryptUrl.php <input file> <output file> <aes key hex> <segment index (one based)>'
	sys.exit(1)

INPUT_FILE = sys.argv[1]
OUTPUT_FILE = sys.argv[2]
ENC_KEY = sys.argv[3].decode('hex')
SEGMENT_INDEX = int(sys.argv[4])

encryptedData = file(INPUT_FILE, 'rb').read()
decryptedData, error = decryptTsSegment(encryptedData, ENC_KEY, SEGMENT_INDEX)
if decryptedData == None:
	print error
	sys.exit(1)
file(OUTPUT_FILE, 'wb').write(decryptedData)
if len(sys.argv) < 5:
    print(
        'Usage:\n\tpython %s <input file> <output file> <aes key hex> <segment index (one based) or 0xIV>'
        % os.path.basename(__file__))
    sys.exit(1)

INPUT_FILE = sys.argv[1]
OUTPUT_FILE = sys.argv[2]
ENC_KEY = sys.argv[3]
ENC_IV = sys.argv[4]

# key
if ENC_KEY.startswith('0x'):
    ENC_KEY = ENC_KEY[2:]
ENC_KEY = ENC_KEY.decode('hex')

# iv
if ENC_IV.startswith('0x'):
    ENC_IV = ENC_IV[2:]
    ENC_IV = ENC_IV.decode('hex')
else:
    segmentIndex = int(ENC_IV)
    ENC_IV = '\0' * 12 + struct.pack('>L', segmentIndex)

encryptedData = open(INPUT_FILE, 'rb').read()
decryptedData, error = decryptTsSegment(encryptedData, ENC_KEY, ENC_IV)
if decryptedData == None:
    print(error)
    sys.exit(1)
open(OUTPUT_FILE, 'wb').write(decryptedData)
from ts_utils import decryptTsSegment
import sys

if len(sys.argv) < 5:
    print 'Usage:\n\tphp encryptUrl.php <input file> <output file> <aes key hex> <segment index (one based)>'
    sys.exit(1)

INPUT_FILE = sys.argv[1]
OUTPUT_FILE = sys.argv[2]
ENC_KEY = sys.argv[3].decode('hex')
SEGMENT_INDEX = int(sys.argv[4])

encryptedData = file(INPUT_FILE, 'rb').read()
decryptedData, error = decryptTsSegment(encryptedData, ENC_KEY, SEGMENT_INDEX)
if decryptedData == None:
    print error
    sys.exit(1)
file(OUTPUT_FILE, 'wb').write(decryptedData)