anchor.diff:      [{group, queries}
       ,{group, reload}
       ,{group, repo_operations}
  -    ,{group, key_operations}].
  +    ,{group, key_operations}
  +    ,{group, key_parsing}].
   
   groups() ->
       [{queries, [], [valid_key_valid_path
  
positive.code:                    ,valid_key_invalid_path]}
      ,{reload, [], [reload_config]}
      ,{repo_operations, [], [add_repo, remove_repo]}
      ,{key_operations, [], [add_key, remove_key]}].
  
  
  %% Set up, tear down
  
negative.code:     ok = cvmfs_auth:reload_repo_config(),
      false = lists:member({<<"/new/repo/path">>, [<<"key">>]}, cvmfs_auth:get_repos()).
  
  normal(_Config) ->
      Data = <<"plain_text id secret">>,
      {<<"plain_text">>, <<"id">>, <<"secret">>} = cvmfs_auth_util:parse_key_binary(Data).
  
  whitespace(_Config) ->
      Data = <<"    plain_text   id   secret    ">>,
      {<<"plain_text">>, <<"id">>, <<"secret">>} = cvmfs_auth_util:parse_key_binary(Data).
  
  tabs(_Config) ->
      Data = <<"\tplain_text\tid\tsecret\t">>,
      {<<"plain_text">>, <<"id">>, <<"secret">>} = cvmfs_auth_util:parse_key_binary(Data).
  
  everything(_Config) ->
      Data = <<" \t   plain_text \t  id \t  secret \t \n  ">>,
      {<<"plain_text">>, <<"id">>, <<"secret">>} = cvmfs_auth_util:parse_key_binary(Data).
  