anchor.diff:  public_encrypt() ->
        [{doc, "Test public_encrypt/decrypt "}].
   public_encrypt(Config) when is_list(Config) ->
  -    Params = proplists:get_value(pub_priv_encrypt, Config),
  +    Params = proplists:get_value(pub_pub_encrypt, Config, []),
       lists:foreach(fun do_public_encrypt/1, Params).
   
   %%-------------------------------------------------------------------- 
   private_encrypt() ->
        [{doc, "Test private_encrypt/decrypt functions. "}].
   private_encrypt(Config) when is_list(Config) ->
  -    Params = proplists:get_value(pub_priv_encrypt, Config),
  +    Params = proplists:get_value(pub_priv_encrypt, Config, []),
       lists:foreach(fun do_private_encrypt/1, Params).
   
   %%--------------------------------------------------------------------
  
positive.code: group_config(_, Config) ->
      Config.
  
  sign_verify_tests(Type, Msg, Public, Private, PublicS, PrivateS) ->
      gen_sign_verify_tests(Type, [md5, ripemd160, sha, sha224, sha256], Msg, Public, Private,
  			  [undefined,
  			   [{rsa_padding, rsa_pkcs1_pss_padding}],
  			   [{rsa_padding, rsa_pkcs1_pss_padding}, {rsa_pss_saltlen, 0}],
  			   [{rsa_padding, rsa_x931_padding}]
  			  ]) ++
  	gen_sign_verify_tests(Type, [sha384, sha512], Msg, PublicS, PrivateS,
  			      [undefined,
  			       [{rsa_padding, rsa_pkcs1_pss_padding}],
  			       [{rsa_padding, rsa_pkcs1_pss_padding}, {rsa_pss_saltlen, 0}],
  			       [{rsa_padding, rsa_x931_padding}]
  			      ]).
  
  gen_sign_verify_tests(Type, Hashs, Msg, Public, Private, Opts) ->
      lists:foldr(fun(Hash, Acc0) ->
  	case is_supported(Hash) of
  	    true ->
  		lists:foldr(fun
  		    (undefined, Acc1) ->
  			[{Type, Hash, Public, Private, Msg} | Acc1];
  		    ([{rsa_padding, rsa_x931_padding} | _], Acc1)
  			    when Hash =:= md5
  			    orelse Hash =:= ripemd160
  			    orelse Hash =:= sha224 ->
  			Acc1;
  		    (Opt, Acc1) ->
  			[{Type, Hash, Public, Private, Msg, Opt} | Acc1]
  		end, Acc0, Opts);
  	    false ->
  		Acc0
  	end
      end, [], Hashs).
  
  rfc_1321_msgs() ->
      [<<"">>, 
  
negative.code:                 Other ->
                      ct:fail({{crypto, public_decrypt, [Type, PrivEcn, Public, Padding]}, {expected, Msg}, {got, Other}})
              catch
                  CC:EE ->
                      ct:fail({{crypto, public_decrypt, [Type, PrivEcn, Public, Padding]}, {expected, Msg}, {got, {CC,EE}}})
              end
      catch
          CC:EE ->
              ct:fail({{crypto, private_encrypt, [Type, Msg, Private, Padding]}, {got, {CC,EE}}})
      end.
  
  do_generate_compute({srp = Type, UserPrivate, UserGenParams, UserComParams,
  