Skip to content

warn for hmac and hexlify#13

Merged
bors[bot] merged 1 commit into
softdevteam:migrationfrom
nanjekyejoannah:cred
Nov 25, 2022
Merged

warn for hmac and hexlify#13
bors[bot] merged 1 commit into
softdevteam:migrationfrom
nanjekyejoannah:cred

Conversation

@nanjekyejoannah

@nanjekyejoannah nanjekyejoannah commented Nov 22, 2022

Copy link
Copy Markdown
Collaborator

This PR adds warnings for the following modules:

  • hmac
  • binascii.hexlify
  • binascii.b2a_hex

See the notes below:

  1. warn for the 'digest' parameter in hmac in pygrate2

In Python 2:

>>> import hashlib
>>> import hmac
>>> string1 = 'firststring'.encode('utf-8')
>>> string2 = 'secondstring'.encode('utf-8')
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
>>> digest = hmac.new(key=string1, msg=string2).digest() 
>>> 

In Python 3:

string1 = 'firststring'.encode('utf-8')
>>> string2 = 'secondstring'.encode('utf-8')
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'hmac' is not defined
>>> import hashlib
>>> import hmac
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
>>> digest = hmac.new(key=string1, msg=string2).digest() 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@3.9/3.9.12_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/hmac.py", line 170, in new
    return HMAC(key, msg, digestmod)
  File "/usr/local/Cellar/python@3.9/3.9.12_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/hmac.py", line 56, in __init__
    raise TypeError("Missing required parameter 'digestmod'.")
TypeError: Missing required parameter 'digestmod'.
>>> 
  1. Warn for hexlify

In python 2:

>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
'426c616168'
>>> import binascii
>>> binascii.hexlify(b'Blaah')
'426c616168'
>>> binascii.hexlify('Blaah')
'426c616168'
>>> 

In Python 3:

>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
b'426c616168'
>>> import binascii
>>> binascii.hexlify(b'Blaah')
b'426c616168'
>>> binascii.hexlify('Blaah')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> 

@ltratt

ltratt commented Nov 23, 2022

Copy link
Copy Markdown
Member

bors r+

bors Bot added a commit that referenced this pull request Nov 23, 2022
13: warn for hmac and hexlify r=ltratt a=nanjekyejoannah

This PR adds warnings for the following modules:
- `hmac`
- `binascii.hexlify`
- `binascii.b2a_hex`

See the notes below:

1. warn for the 'digest' parameter in hmac in pygrate2

In Python 2:

```
>>> import hashlib
>>> import hmac
>>> string1 = 'firststring'.encode('utf-8')
>>> string2 = 'secondstring'.encode('utf-8')
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
>>> digest = hmac.new(key=string1, msg=string2).digest() 
>>> 
```

In Python 3:

```
string1 = 'firststring'.encode('utf-8')
>>> string2 = 'secondstring'.encode('utf-8')
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'hmac' is not defined
>>> import hashlib
>>> import hmac
>>> digest = hmac.new(key=string1, msg=string2, digestmod=hashlib.sha256).digest()
>>> digest = hmac.new(key=string1, msg=string2).digest() 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@3.9/3.9.12_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/hmac.py", line 170, in new
    return HMAC(key, msg, digestmod)
  File "/usr/local/Cellar/python@3.9/3.9.12_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/hmac.py", line 56, in __init__
    raise TypeError("Missing required parameter 'digestmod'.")
TypeError: Missing required parameter 'digestmod'.
>>> 
```


2. Warn for hexlify 

In python 2:

```
>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
'426c616168'
>>> import binascii
>>> binascii.hexlify(b'Blaah')
'426c616168'
>>> binascii.hexlify('Blaah')
'426c616168'
>>> 
```

In Python 3:

```
>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
b'426c616168'
>>> import binascii
>>> binascii.hexlify(b'Blaah')
b'426c616168'
>>> binascii.hexlify('Blaah')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> 
```


Co-authored-by: Joannah Nanjekye <jnanjekye@python.org>
@bors

bors Bot commented Nov 23, 2022

Copy link
Copy Markdown

Build failed:

@nanjekyejoannah

Copy link
Copy Markdown
Collaborator Author

Seems to complain of an unchanged line in the code, let me see why maybe the builtin is nit generated.

@nanjekyejoannah

Copy link
Copy Markdown
Collaborator Author

bors try

bors Bot added a commit that referenced this pull request Nov 24, 2022
@bors

bors Bot commented Nov 24, 2022

Copy link
Copy Markdown

try

Build succeeded:

@ltratt

ltratt commented Nov 25, 2022

Copy link
Copy Markdown
Member

If this is ready for squashing, please squash.

@nanjekyejoannah

Copy link
Copy Markdown
Collaborator Author

Squashed

@ltratt

ltratt commented Nov 25, 2022

Copy link
Copy Markdown
Member

bors r+

@bors

bors Bot commented Nov 25, 2022

Copy link
Copy Markdown

Build succeeded:

@bors
bors Bot merged commit fa27e80 into softdevteam:migration Nov 25, 2022
bors Bot added a commit that referenced this pull request Nov 29, 2022
16: Warn for specific thread module methods r=ltratt a=nanjekyejoannah

Dont merge until #13  and  #14 are merged, some helper code cuts across.

This replaces #15 

Threading module Notes

Python 2:

```
>>> from thread import get_ident
>>> from threading import get_ident
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name get_ident
>>> import threading
>>> from threading import _get_ident
>>>
```

Python 3:

```
>>> from threading import get_ident
>>> from thread import get_ident
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'thread'
>
```

**Note:**

There is no neutral way of porting

Co-authored-by: Joannah Nanjekye <jnanjekye@python.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants