mirror of git://anongit.mindrot.org/openssh.git
upstream commit
- tedu@cvs.openbsd.org 2015/01/12 03:20:04 [bcrypt_pbkdf.c] rename blocks to words. bcrypt "blocks" are unrelated to blowfish blocks, nor are they the same size.
This commit is contained in:
parent
f6391d4e59
commit
d028d5d3a6
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: bcrypt_pbkdf.c,v 1.12 2015/01/08 00:30:07 deraadt Exp $ */
|
/* $OpenBSD: bcrypt_pbkdf.c,v 1.13 2015/01/12 03:20:04 tedu Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
|
* Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
|
||||||
*
|
*
|
||||||
|
@ -63,8 +63,8 @@
|
||||||
* wise caller could do; we just do it for you.
|
* wise caller could do; we just do it for you.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BCRYPT_BLOCKS 8
|
#define BCRYPT_WORDS 8
|
||||||
#define BCRYPT_HASHSIZE (BCRYPT_BLOCKS * 4)
|
#define BCRYPT_HASHSIZE (BCRYPT_WORDS * 4)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
|
bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
|
||||||
|
@ -72,7 +72,7 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
|
||||||
blf_ctx state;
|
blf_ctx state;
|
||||||
u_int8_t ciphertext[BCRYPT_HASHSIZE] =
|
u_int8_t ciphertext[BCRYPT_HASHSIZE] =
|
||||||
"OxychromaticBlowfishSwatDynamite";
|
"OxychromaticBlowfishSwatDynamite";
|
||||||
uint32_t cdata[BCRYPT_BLOCKS];
|
uint32_t cdata[BCRYPT_WORDS];
|
||||||
int i;
|
int i;
|
||||||
uint16_t j;
|
uint16_t j;
|
||||||
size_t shalen = SHA512_DIGEST_LENGTH;
|
size_t shalen = SHA512_DIGEST_LENGTH;
|
||||||
|
@ -87,14 +87,14 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
|
||||||
|
|
||||||
/* encryption */
|
/* encryption */
|
||||||
j = 0;
|
j = 0;
|
||||||
for (i = 0; i < BCRYPT_BLOCKS; i++)
|
for (i = 0; i < BCRYPT_WORDS; i++)
|
||||||
cdata[i] = Blowfish_stream2word(ciphertext, sizeof(ciphertext),
|
cdata[i] = Blowfish_stream2word(ciphertext, sizeof(ciphertext),
|
||||||
&j);
|
&j);
|
||||||
for (i = 0; i < 64; i++)
|
for (i = 0; i < 64; i++)
|
||||||
blf_enc(&state, cdata, sizeof(cdata) / sizeof(uint64_t));
|
blf_enc(&state, cdata, sizeof(cdata) / sizeof(uint64_t));
|
||||||
|
|
||||||
/* copy out */
|
/* copy out */
|
||||||
for (i = 0; i < BCRYPT_BLOCKS; i++) {
|
for (i = 0; i < BCRYPT_WORDS; i++) {
|
||||||
out[4 * i + 3] = (cdata[i] >> 24) & 0xff;
|
out[4 * i + 3] = (cdata[i] >> 24) & 0xff;
|
||||||
out[4 * i + 2] = (cdata[i] >> 16) & 0xff;
|
out[4 * i + 2] = (cdata[i] >> 16) & 0xff;
|
||||||
out[4 * i + 1] = (cdata[i] >> 8) & 0xff;
|
out[4 * i + 1] = (cdata[i] >> 8) & 0xff;
|
||||||
|
|
Loading…
Reference in New Issue