|
20 | 20 | import re |
21 | 21 | import datetime |
22 | 22 | import ast |
| 23 | +import sys |
23 | 24 |
|
24 | 25 | # Import salt libs |
25 | 26 | import salt.utils.files |
@@ -132,8 +133,8 @@ def _new_extension(name, value, critical=0, issuer=None, _pyfree=1): |
132 | 133 | 'value must be precomputed hash') |
133 | 134 |
|
134 | 135 | # ensure name and value are bytes |
135 | | - name = salt.utils.stringutils.to_bytes(name) |
136 | | - value = salt.utils.stringutils.to_bytes(value) |
| 136 | + name = salt.utils.stringutils.to_str(name) |
| 137 | + value = salt.utils.stringutils.to_str(value) |
137 | 138 |
|
138 | 139 | try: |
139 | 140 | ctx = M2Crypto.m2.x509v3_set_nconf() |
@@ -320,9 +321,9 @@ def _text_or_file(input_): |
320 | 321 | ''' |
321 | 322 | if os.path.isfile(input_): |
322 | 323 | with salt.utils.files.fopen(input_) as fp_: |
323 | | - return salt.utils.stringutils.to_bytes(fp_.read()) |
| 324 | + return salt.utils.stringutils.to_str(fp_.read()) |
324 | 325 | else: |
325 | | - return input_ |
| 326 | + return salt.utils.stringutils.to_str(input_) |
326 | 327 |
|
327 | 328 |
|
328 | 329 | def _parse_subject(subject): |
@@ -497,7 +498,7 @@ def get_pem_entry(text, pem_type=None): |
497 | 498 | ret += pem_body[i:i + 64] + '\n' |
498 | 499 | ret += pem_footer + '\n' |
499 | 500 |
|
500 | | - return ret.encode('ascii') |
| 501 | + return salt.utils.stringutils.to_bytes(ret, encoding='ascii') |
501 | 502 |
|
502 | 503 |
|
503 | 504 | def get_pem_entries(glob_path): |
@@ -682,27 +683,27 @@ def get_public_key(key, passphrase=None, asObj=False): |
682 | 683 |
|
683 | 684 | if isinstance(key, M2Crypto.X509.X509): |
684 | 685 | rsa = key.get_pubkey().get_rsa() |
685 | | - text = '' |
| 686 | + text = b'' |
686 | 687 | else: |
687 | 688 | text = _text_or_file(key) |
688 | 689 | text = get_pem_entry(text) |
689 | 690 |
|
690 | | - if text.startswith('-----BEGIN PUBLIC KEY-----'): |
| 691 | + if text.startswith(b'-----BEGIN PUBLIC KEY-----'): |
691 | 692 | if not asObj: |
692 | 693 | return text |
693 | 694 | bio = M2Crypto.BIO.MemoryBuffer() |
694 | 695 | bio.write(text) |
695 | 696 | rsa = M2Crypto.RSA.load_pub_key_bio(bio) |
696 | 697 |
|
697 | 698 | bio = M2Crypto.BIO.MemoryBuffer() |
698 | | - if text.startswith('-----BEGIN CERTIFICATE-----'): |
| 699 | + if text.startswith(b'-----BEGIN CERTIFICATE-----'): |
699 | 700 | cert = M2Crypto.X509.load_cert_string(text) |
700 | 701 | rsa = cert.get_pubkey().get_rsa() |
701 | | - if text.startswith('-----BEGIN CERTIFICATE REQUEST-----'): |
| 702 | + if text.startswith(b'-----BEGIN CERTIFICATE REQUEST-----'): |
702 | 703 | csr = M2Crypto.X509.load_request_string(text) |
703 | 704 | rsa = csr.get_pubkey().get_rsa() |
704 | | - if (text.startswith('-----BEGIN PRIVATE KEY-----') or |
705 | | - text.startswith('-----BEGIN RSA PRIVATE KEY-----')): |
| 705 | + if (text.startswith(b'-----BEGIN PRIVATE KEY-----') or |
| 706 | + text.startswith(b'-----BEGIN RSA PRIVATE KEY-----')): |
706 | 707 | rsa = M2Crypto.RSA.load_key_string( |
707 | 708 | text, callback=_passphrase_callback(passphrase)) |
708 | 709 |
|
@@ -852,7 +853,7 @@ def create_private_key(path=None, |
852 | 853 | pem_type='(?:RSA )?PRIVATE KEY' |
853 | 854 | ) |
854 | 855 | else: |
855 | | - return bio.read_all() |
| 856 | + return salt.utils.stringutils.to_str(bio.read_all()) |
856 | 857 |
|
857 | 858 |
|
858 | 859 | def create_crl( # pylint: disable=too-many-arguments,too-many-locals |
@@ -1430,7 +1431,14 @@ def create_certificate( |
1430 | 1431 | if 'serial_number' not in kwargs: |
1431 | 1432 | kwargs['serial_number'] = _dec2hex( |
1432 | 1433 | random.getrandbits(kwargs['serial_bits'])) |
1433 | | - cert.set_serial_number(int(kwargs['serial_number'].replace(':', ''), 16)) |
| 1434 | + serial_number = int(kwargs['serial_number'].replace(':', ''), 16) |
| 1435 | + # With Python3 we occasionally end up with an INT |
| 1436 | + # that is too large because Python3 no longer supports long INTs. |
| 1437 | + # If we're larger than the maxsize value |
| 1438 | + # then we adjust the serial number. |
| 1439 | + if serial_number > sys.maxsize: |
| 1440 | + serial_number = serial_number - sys.maxsize |
| 1441 | + cert.set_serial_number(serial_number) |
1434 | 1442 |
|
1435 | 1443 | # Set validity dates |
1436 | 1444 | # pylint: disable=no-member |
|
0 commit comments