Skip to content

Commit

Permalink
Paint it Black by the Rolling Stones (#610)
Browse files Browse the repository at this point in the history
  • Loading branch information
alex committed Jul 24, 2020
1 parent c847d81 commit efa75cb
Show file tree
Hide file tree
Showing 54 changed files with 2,952 additions and 2,333 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ matrix:
dist: xenial
- python: 3.6
env: TOXENV=docs
- env: TOXENV=meta
- python: 3.8
env: TOXENV=meta
- python: 2.7
arch: arm64
env: TOXENV=py27 SODIUM_INSTALL=bundled CC=gcc
Expand Down
144 changes: 86 additions & 58 deletions docs/vectors/python/argondriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,43 +35,55 @@ def __init__(self, args):
def _runOnce(self, passwd, salt, dgst_len, maxmem, iters):
"""
"""
argv = [self.exe, salt.encode('ascii'),
'-t', '{0:2d}'.format(iters),
'-m', '{0:2d}'.format(maxmem),
'-l', '{0:3d}'.format(dgst_len),
'-v', self.version,
]
argv = [
self.exe,
salt.encode("ascii"),
"-t",
"{0:2d}".format(iters),
"-m",
"{0:2d}".format(maxmem),
"-l",
"{0:3d}".format(dgst_len),
"-v",
self.version,
]

if self.encoded:
argv.append('-e')
mode = 'crypt'
argv.append("-e")
mode = "crypt"
else:
argv.append('-r')
mode = 'raw'
if self.construct == 'argon2i':
argv.append('-i')
elif self.construct == 'argon2d':
argv.append('-d')
elif self.construct == 'argon2id':
argv.append('-id')
p = subprocess.Popen(argv, stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
out, err = p.communicate(passwd.encode('ascii'))
return dict(passwd=passwd, salt=salt, dgst_len=dgst_len,
maxmem=2 ** maxmem, iters=iters, mode=mode,
pwhash=out.decode('ascii').rstrip(),
construct=self.construct,
)
argv.append("-r")
mode = "raw"
if self.construct == "argon2i":
argv.append("-i")
elif self.construct == "argon2d":
argv.append("-d")
elif self.construct == "argon2id":
argv.append("-id")
p = subprocess.Popen(
argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
out, err = p.communicate(passwd.encode("ascii"))
return dict(
passwd=passwd,
salt=salt,
dgst_len=dgst_len,
maxmem=2 ** maxmem,
iters=iters,
mode=mode,
pwhash=out.decode("ascii").rstrip(),
construct=self.construct,
)

def _genSalt(self):
sltln = self.rng.randint(self.mnsaltlen, self.mxsaltlen)
chrs = [self.rng.choice(self.GOODCHARS) for x in range(sltln)]
return ''.join(chrs)
return "".join(chrs)

def _genPw(self):
pwln = self.rng.randint(self.mnpwlen, self.mxpwlen)
chrs = [self.rng.choice(self.GOODCHARS) for x in range(pwln)]
return ''.join(chrs)
return "".join(chrs)

def __next__(self):
if self.count >= self.maxcount:
Expand All @@ -91,42 +103,58 @@ def __iter__(self):
next = __next__


if __name__ == '__main__':
if __name__ == "__main__":

p = argparse.ArgumentParser()
p.add_argument('-x', '--executable', dest='exe', required=True)
p.add_argument('-c', '--construction', dest='construct',
type=str, default='argon2i')
p.add_argument('-v', '--version', dest='version',
type=str, default='13')
p.add_argument('-e', '--encoded', dest='encoded', default=False,
action='store_true',)
p.add_argument('-s', '--min-salt-len', dest='mnsaltlen', type=int,
default=8)
p.add_argument('-S', '--max-salt-len', dest='mxsaltlen', type=int,
default=8)
p.add_argument('-p', '--min-password-len', dest='mnpwlen',
type=int, default=16)
p.add_argument('-P', '--max-password-len', dest='mxpwlen',
type=int, default=16)
p.add_argument('-l', '--min-digest-len', dest='mndgstlen',
type=int, default=64)
p.add_argument('-L', '--max-digest-len', dest='mxdgstlen',
type=int, default=64)
p.add_argument('-m', '--min-memory-exponent', dest='mnmem',
type=int, default=16)
p.add_argument('-M', '--max-memory-exponent', dest='mxmem',
type=int, default=16)
p.add_argument('-t', '--min-time-opscount', dest='mniters',
type=int, default=3)
p.add_argument('-T', '--max-time-opscount', dest='mxiters',
type=int, default=3)
p.add_argument('-n', '--count', dest='n', type=int, default=10)
p.add_argument('-w', '--output', dest='outfile',
default=sys.stdout, type=argparse.FileType('w'))
p.add_argument("-x", "--executable", dest="exe", required=True)
p.add_argument(
"-c", "--construction", dest="construct", type=str, default="argon2i"
)
p.add_argument("-v", "--version", dest="version", type=str, default="13")
p.add_argument(
"-e", "--encoded", dest="encoded", default=False, action="store_true",
)
p.add_argument(
"-s", "--min-salt-len", dest="mnsaltlen", type=int, default=8
)
p.add_argument(
"-S", "--max-salt-len", dest="mxsaltlen", type=int, default=8
)
p.add_argument(
"-p", "--min-password-len", dest="mnpwlen", type=int, default=16
)
p.add_argument(
"-P", "--max-password-len", dest="mxpwlen", type=int, default=16
)
p.add_argument(
"-l", "--min-digest-len", dest="mndgstlen", type=int, default=64
)
p.add_argument(
"-L", "--max-digest-len", dest="mxdgstlen", type=int, default=64
)
p.add_argument(
"-m", "--min-memory-exponent", dest="mnmem", type=int, default=16
)
p.add_argument(
"-M", "--max-memory-exponent", dest="mxmem", type=int, default=16
)
p.add_argument(
"-t", "--min-time-opscount", dest="mniters", type=int, default=3
)
p.add_argument(
"-T", "--max-time-opscount", dest="mxiters", type=int, default=3
)
p.add_argument("-n", "--count", dest="n", type=int, default=10)
p.add_argument(
"-w",
"--output",
dest="outfile",
default=sys.stdout,
type=argparse.FileType("w"),
)

args = p.parse_args()

res = [x for x in argonRunner(args)]

json.dump(res, args.outfile, indent=2, separators=(',', ': '))
json.dump(res, args.outfile, indent=2, separators=(",", ": "))
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ requires = [
"cffi>=1.4.1; python_implementation != 'PyPy'",
]
build-backend = "setuptools.build_meta"

[tool.black]
line-length = 79
target-version = ["py27"]
60 changes: 35 additions & 25 deletions release.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,43 +25,53 @@ def run(*args, **kwargs):

def wait_for_build_complete_github_actions(session, token, run_url):
while True:
response = session.get(run_url, headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
})
response = session.get(
run_url,
headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
},
)
response.raise_for_status()
if response.json()["conclusion"] is not None:
break
time.sleep(3)


def download_artifacts_github_actions(session, token, run_url):
response = session.get(run_url, headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
})
response = session.get(
run_url,
headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
},
)
response.raise_for_status()

response = session.get(response.json()["artifacts_url"], headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
})
response = session.get(
response.json()["artifacts_url"],
headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
},
)
response.raise_for_status()
paths = []
for artifact in response.json()["artifacts"]:
response = session.get(artifact["archive_download_url"], headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
})
response = session.get(
artifact["archive_download_url"],
headers={
"Content-Type": "application/json",
"Authorization": "token {}".format(token),
},
)
with zipfile.ZipFile(io.BytesIO(response.content)) as z:
for name in z.namelist():
if not name.endswith(".whl"):
continue
p = z.open(name)
out_path = os.path.join(
os.path.dirname(__file__),
"dist",
os.path.basename(name),
os.path.dirname(__file__), "dist", os.path.basename(name),
)
with open(out_path, "wb") as f:
f.write(p.read())
Expand All @@ -79,12 +89,12 @@ def build_github_actions_wheels(token, version):
"Accept": "application/vnd.github.everest-preview+json",
"Authorization": "token {}".format(token),
},
data=json.dumps({
"event_type": "wheel-builder",
"client_payload": {
"BUILD_VERSION": version,
},
}),
data=json.dumps(
{
"event_type": "wheel-builder",
"client_payload": {"BUILD_VERSION": version},
}
),
)
response.raise_for_status()

Expand Down

0 comments on commit efa75cb

Please sign in to comment.