Skip to content

Commit 6a77b6d

Browse files
Merge branch 'stable' into rabbitmq-management-427
2 parents 3afc67b + 39c1bd1 commit 6a77b6d

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

docs/rabbitmqctl.1.xml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2189,7 +2189,7 @@
21892189
Flag to decrypt the input value.
21902190
</para>
21912191
<para role="example-prefix">For example:</para>
2192-
<screen role="example">rabbitmqctl encode --decode '{encrypted,'&lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
2192+
<screen role="example">rabbitmqctl encode --decode '{encrypted, &lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
21932193
</listitem>
21942194
</varlistentry>
21952195
<varlistentry>
@@ -2205,7 +2205,7 @@
22052205
</para>
22062206
<para role="example-prefix">For example:</para>
22072207
<screen role="example">rabbitmqctl encode '&lt;&lt;"guest"&gt;&gt;' mypassphrase</screen>
2208-
<screen role="example">rabbitmqctl encode --decode '{encrypted,'&lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
2208+
<screen role="example">rabbitmqctl encode --decode '{encrypted, &lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
22092209
</listitem>
22102210
</varlistentry>
22112211
<varlistentry>
@@ -2252,7 +2252,7 @@ rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 \
22522252

22532253
<varlistentry>
22542254
<!-- one-line formatting matters for rabbit_ctl_usage.erl code generation -->
2255-
<term><cmdsynopsis><command>decode</command> <arg choice="opt"><replaceable>value</replaceable></arg> <arg choice="opt"><replaceable>passphrase</replaceable></arg></cmdsynopsis>
2255+
<term><cmdsynopsis><command>decode</command> <arg choice="opt"><replaceable>value</replaceable></arg> <arg choice="opt"><replaceable>passphrase</replaceable></arg><arg choice="opt">--cipher <replaceable>cipher</replaceable></arg> <arg choice="opt">--hash <replaceable>hash</replaceable></arg> <arg choice="opt">--iterations <replaceable>iterations</replaceable></arg></cmdsynopsis>
22562256
</term>
22572257
<listitem>
22582258
<variablelist>
@@ -2268,7 +2268,25 @@ rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 \
22682268
Value to decrypt (as produced by the encode command) and passphrase.
22692269
</para>
22702270
<para role="example-prefix">For example:</para>
2271-
<screen role="example">rabbitmqctl decode '{encrypted,'&lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
2271+
<screen role="example">rabbitmqctl decode '{encrypted, &lt;&lt;"..."&gt;&gt;}' mypassphrase</screen>
2272+
</listitem>
2273+
</varlistentry>
2274+
<varlistentry>
2275+
<term>
2276+
<cmdsynopsis>
2277+
<arg choice="opt">--cipher <replaceable>cipher</replaceable></arg>
2278+
<arg choice="opt">--hash <replaceable>hash</replaceable></arg>
2279+
<arg choice="opt">--iterations <replaceable>iterations</replaceable></arg>
2280+
</cmdsynopsis>
2281+
</term>
2282+
<listitem>
2283+
<para>
2284+
Options to specify the decryption settings. They can be used independently.
2285+
</para>
2286+
<para role="example-prefix">For example:</para>
2287+
<screen role="example">
2288+
rabbitmqctl decode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 \
2289+
'{encrypted,&lt;&lt;"cU4kaour6KG8n/rC4IZT4MfKsS/th9gdAMWjcY9ygUPIwiW4BJmVyg=="&gt;&gt;}' mypassphrase</screen>
22722290
</listitem>
22732291
</varlistentry>
22742292
</variablelist>

src/rabbit_control_main.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@
123123
[stop, shutdown, stop_app, start_app, wait, reset, force_reset, rotate_logs,
124124
join_cluster, change_cluster_node_type, update_cluster_nodes,
125125
forget_cluster_node, rename_cluster_node, cluster_status, status,
126-
environment, eval, force_boot, help, hipe_compile, encode]).
126+
environment, eval, force_boot, help, hipe_compile, encode, decode,
127+
list_ciphers, list_hashes]).
127128

128129
%% [Command | {Command, DefaultTimeoutInMilliSeconds}]
129130
-define(COMMANDS_WITH_TIMEOUT,

test/unit_SUITE.erl

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -387,29 +387,23 @@ decrypt_start_app_wrong_passphrase(Config) ->
387387

388388
rabbitmqctl_encode(_Config) ->
389389
% list ciphers and hashes
390-
{ok, _} = rabbit_control_pbe:encode(true, false, undefined, undefined, undefined, undefined, undefined),
391-
{ok, _} = rabbit_control_pbe:encode(false, true, undefined, undefined, undefined, undefined, undefined),
390+
{ok, _} = rabbit_control_pbe:list_ciphers(),
391+
{ok, _} = rabbit_control_pbe:list_hashes(),
392392
% incorrect ciphers, hashes and iteration number
393-
{error, _} = rabbit_control_pbe:encode(false, false, undefined, funny_cipher, undefined, undefined, undefined),
394-
{error, _} = rabbit_control_pbe:encode(false, false, undefined, undefined, funny_hash, undefined, undefined),
395-
{error, _} = rabbit_control_pbe:encode(false, false, undefined, undefined, undefined, -1, undefined),
396-
{error, _} = rabbit_control_pbe:encode(false, false, undefined, undefined, undefined, 0, undefined),
393+
{error, _} = rabbit_control_pbe:encode(funny_cipher, undefined, undefined, undefined),
394+
{error, _} = rabbit_control_pbe:encode(undefined, funny_hash, undefined, undefined),
395+
{error, _} = rabbit_control_pbe:encode(undefined, undefined, -1, undefined),
396+
{error, _} = rabbit_control_pbe:encode(undefined, undefined, 0, undefined),
397397
% incorrect number of arguments
398398
{error, _} = rabbit_control_pbe:encode(
399-
false, false,
400-
false, % encrypt
401399
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
402400
[]
403401
),
404402
{error, _} = rabbit_control_pbe:encode(
405-
false, false,
406-
false, % encrypt
407403
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
408404
[undefined]
409405
),
410406
{error, _} = rabbit_control_pbe:encode(
411-
false, false,
412-
false, % encrypt
413407
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
414408
[undefined, undefined, undefined]
415409
),
@@ -427,38 +421,28 @@ rabbitmqctl_encode(_Config) ->
427421
rabbitmqctl_encode_encrypt_decrypt(Secret) ->
428422
PassPhrase = "passphrase",
429423
{ok, Output} = rabbit_control_pbe:encode(
430-
false, false,
431-
false, % encrypt
432424
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
433425
[Secret, PassPhrase]
434426
),
435427
{encrypted, Encrypted} = rabbit_control_pbe:evaluate_input_as_term(lists:flatten(Output)),
436428

437-
{ok, Result} = rabbit_control_pbe:encode(
438-
false, false,
439-
true, % decrypt
429+
{ok, Result} = rabbit_control_pbe:decode(
440430
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
441431
[lists:flatten(io_lib:format("~p", [Encrypted])), PassPhrase]
442432
),
443433
Secret = lists:flatten(Result),
444434
% decrypt with {encrypted, ...} form as input
445-
{ok, Result} = rabbit_control_pbe:encode(
446-
false, false,
447-
true, % decrypt
435+
{ok, Result} = rabbit_control_pbe:decode(
448436
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
449437
[lists:flatten(io_lib:format("~p", [{encrypted, Encrypted}])), PassPhrase]
450438
),
451439

452440
% wrong passphrase
453-
{error, _} = rabbit_control_pbe:encode(
454-
false, false,
455-
true, % decrypt
441+
{error, _} = rabbit_control_pbe:decode(
456442
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
457443
[lists:flatten(io_lib:format("~p", [Encrypted])), PassPhrase ++ " "]
458444
),
459-
{error, _} = rabbit_control_pbe:encode(
460-
false, false,
461-
true, % decrypt
445+
{error, _} = rabbit_control_pbe:decode(
462446
rabbit_pbe:default_cipher(), rabbit_pbe:default_hash(), rabbit_pbe:default_iterations(),
463447
[lists:flatten(io_lib:format("~p", [{encrypted, Encrypted}])), PassPhrase ++ " "]
464448
)

0 commit comments

Comments
 (0)