@@ -5,10 +5,10 @@ program
5
5
.option (' -u, --url [url]' , ' URL of a 0bin site.' )
6
6
.option (' -e, --expire [period]' ,
7
7
' Expiration period - one of: 1_view, 1_day (default), 1_month, never.' , ' 1_day' )
8
- .option (' -k, --entropy [bits ]' ,
8
+ .option (' -k, --entropy [bytes ]' ,
9
9
' Encryption key entropy (and hence length) to use,' \
10
- + ' in bits, rounded up to multiple of 6 (default: 48 ).\n ' \
11
- + ' That key will be processed by 1000 pbkdf2-sha256 iterations, not used as-is.' , 48 )
10
+ + ' in bytes (default: 32 ).\n ' \
11
+ + ' That key will be processed by 1000 pbkdf2-sha256 iterations, not used as-is.' , 32 )
12
12
.option (' -c, --config [path]' ,
13
13
' Path to zerobin configuration file (default: ~/.zerobinpasterc).\n ' \
14
14
+ ' Should be json-file with the same keys as can be specified on the command line.\n ' \
@@ -51,7 +51,7 @@ program.entropy = parseInt(program.entropy)
51
51
# Generated key will use base64 (6b per char) charset
52
52
# Key is not decoded for pbkdf2, so it's generated via base64 here just for convenience
53
53
generate_key = (entropy ) ->
54
- entropy = Math .ceil (entropy / 6 ) * 6 # non-6-multiple produces same-length base64
54
+ entropy = Math .ceil (entropy / 8.0 ) * 8
55
55
key = sjcl .bitArray .clamp (
56
56
sjcl .random .randomWords (Math .ceil (entropy / 32 ), 0 ), entropy )
57
57
return sjcl .codec .base64 .fromBits (key, 0 ).replace (/ \= + $ / , ' ' ).replace (/ \/ / , ' -' )
0 commit comments