-
- Notifications
You must be signed in to change notification settings - Fork 48.8k
DES_Algorithm #5262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DES_Algorithm #5262
Conversation
A class for the implementation of DES algorithm
Made changes to conform with the given guidelines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11] | ||
]] | ||
| ||
def single_string(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function single_string
Please provide descriptive name for the parameter: s
return '0' * (16 - len(temp)) + temp | ||
| ||
# constructs the str by looking up the corresponding table | ||
def crank(self, msg, table: list(int)) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function crank
Please provide type hint for the parameter: msg
return s | ||
| ||
# makes long str presentable | ||
def pretty(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function pretty
Please provide descriptive name for the parameter: s
ans += str(int(s1[i]) ^ int(s2[i])) | ||
return ans | ||
| ||
def s_box(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function s_box
n += 1 | ||
return ans | ||
| ||
def bits_shuffle(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function bits_shuffle
def bits_shuffle(self, msg: str) -> str: | ||
return self.crank(self.single_string(msg), self.bit_shuffle) | ||
| ||
def generate_keys(self, key: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function generate_keys
self.shifted_keys.append(key) | ||
self.keys.append(self.pc2(key)) | ||
| ||
def solve(self, msg: str, key: str, rnd: int) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function solve
ciphers/des_algorithm.py Outdated
print("Now applying PC-1 we get: ") | ||
key = self.pc1(key) | ||
print(self.pretty(key)) | ||
print("Rotating {} bit to the left we get:".format(self.shifts[rnd])) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned in the Contributing Guidelines, please do not use printf style formatting or str.format()
. Use f-string instead to be more readable and efficient.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11] | ||
]] | ||
| ||
def single_string(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function single_string
Please provide descriptive name for the parameter: s
ciphers/des_algorithm.py Outdated
def single_string(self, s: str) -> str: | ||
return ''.join(s.split()) | ||
| ||
def hex_to_bin(self, n) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function hex_to_bin
Please provide type hint for the parameter: n
Please provide descriptive name for the parameter: n
ciphers/des_algorithm.py Outdated
def hex_to_bin(self, n) -> str: | ||
return bin(int(n, 16)) | ||
| ||
def bin_to_hex(self, n) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function bin_to_hex
Please provide type hint for the parameter: n
Please provide descriptive name for the parameter: n
return '0' * (16 - len(temp)) + temp | ||
| ||
# constructs the str by looking up the corresponding table | ||
def crank(self, msg, table: list(int)) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function crank
Please provide type hint for the parameter: msg
return s | ||
| ||
# makes long str presentable | ||
def pretty(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function pretty
Please provide descriptive name for the parameter: s
def pc2(self, key): | ||
return self.crank(self.single_string(key), self.pc2_table) | ||
| ||
def xor(self, s1: str, s2: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function xor
ans += str(int(s1[i]) ^ int(s2[i])) | ||
return ans | ||
| ||
def s_box(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function s_box
n += 1 | ||
return ans | ||
| ||
def bits_shuffle(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function bits_shuffle
def bits_shuffle(self, msg: str) -> str: | ||
return self.crank(self.single_string(msg), self.bit_shuffle) | ||
| ||
def generate_keys(self, key: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function generate_keys
self.shifted_keys.append(key) | ||
self.keys.append(self.pc2(key)) | ||
| ||
def solve(self, msg: str, key: str, rnd: int) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function solve
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11] | ||
]] | ||
| ||
def single_string(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function single_string
Please provide descriptive name for the parameter: s
return '0' * (16 - len(temp)) + temp | ||
| ||
# constructs the str by looking up the corresponding table | ||
def crank(self, msg, table: list(int)) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function crank
Please provide type hint for the parameter: msg
return s | ||
| ||
# makes long str presentable | ||
def pretty(self, s: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function pretty
Please provide descriptive name for the parameter: s
def pc2(self, key): | ||
return self.crank(self.single_string(key), self.pc2_table) | ||
| ||
def xor(self, s1: str, s2: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function xor
ans += str(int(s1[i]) ^ int(s2[i])) | ||
return ans | ||
| ||
def s_box(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function s_box
n += 1 | ||
return ans | ||
| ||
def bits_shuffle(self, msg: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function bits_shuffle
def bits_shuffle(self, msg: str) -> str: | ||
return self.crank(self.single_string(msg), self.bit_shuffle) | ||
| ||
def generate_keys(self, key: str) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function generate_keys
self.shifted_keys.append(key) | ||
self.keys.append(self.pc2(key)) | ||
| ||
def solve(self, msg: str, key: str, rnd: int) -> str: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is no test file in this pull request nor any test function or class in the file ciphers/des_algorithm.py
, please provide doctest for the function solve
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated type hints and some other issues
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
In preparation for that denial-of-service attack that is Hacktoberfest, I am closing all pull requests that do not have passing tests. |
Describe your change:
Checklist:
Fixes: #{$ISSUE_NO}
.