DES_Algorithm#5262
Conversation
A class for the implementation of DES algorithm
Made changes to conform with the given guidelines
ghost
left a comment
There was a problem hiding this comment.
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 reviewto trigger the checks for only added pull request files@algorithms-keeper review-allto 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.
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.
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.
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.
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.
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.
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.
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
| 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.
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.
ghost
left a comment
There was a problem hiding this comment.
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 reviewto trigger the checks for only added pull request files@algorithms-keeper review-allto 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.
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
| 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.
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
| 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.
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.
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.
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.
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.
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.
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.
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.
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
ghost
left a comment
There was a problem hiding this comment.
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 reviewto trigger the checks for only added pull request files@algorithms-keeper review-allto 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.
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.
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.
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.
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.
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.
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.
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.
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
GustavRamirez
left a comment
There was a problem hiding this comment.
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}.