@@ -51,32 +51,44 @@ int ecc_set_dp(const ltc_ecc_set_type *set, ecc_key *key)
5151
5252int ecc_set_dp_size (int size , ecc_key * key )
5353{
54+ const ltc_ecc_set_type * dp = NULL ;
55+ int err ;
56+
5457 /* for compatibility with libtomcrypt-1.17 the sizes below must match the specific curves */
5558 if (size <= 14 ) {
56- return ecc_set_dp (ecc_get_set ("SECP112R1" ), key );
59+ if ((err = ecc_get_set_by_name ("SECP112R1" , & dp )) != CRYPT_OK ) return err ;
60+ return ecc_set_dp (dp , key );
5761 }
5862 else if (size <= 16 ) {
59- return ecc_set_dp (ecc_get_set ("SECP128R1" ), key );
63+ if ((err = ecc_get_set_by_name ("SECP128R1" , & dp )) != CRYPT_OK ) return err ;
64+ return ecc_set_dp (dp , key );
6065 }
6166 else if (size <= 20 ) {
62- return ecc_set_dp (ecc_get_set ("SECP160R1" ), key );
67+ if ((err = ecc_get_set_by_name ("SECP160R1" , & dp )) != CRYPT_OK ) return err ;
68+ return ecc_set_dp (dp , key );
6369 }
6470 else if (size <= 24 ) {
65- return ecc_set_dp (ecc_get_set ("SECP192R1" ), key );
71+ if ((err = ecc_get_set_by_name ("SECP192R1" , & dp )) != CRYPT_OK ) return err ;
72+ return ecc_set_dp (dp , key );
6673 }
6774 else if (size <= 28 ) {
68- return ecc_set_dp (ecc_get_set ("SECP224R1" ), key );
75+ if ((err = ecc_get_set_by_name ("SECP224R1" , & dp )) != CRYPT_OK ) return err ;
76+ return ecc_set_dp (dp , key );
6977 }
7078 else if (size <= 32 ) {
71- return ecc_set_dp (ecc_get_set ("SECP256R1" ), key );
79+ if ((err = ecc_get_set_by_name ("SECP256R1" , & dp )) != CRYPT_OK ) return err ;
80+ return ecc_set_dp (dp , key );
7281 }
7382 else if (size <= 48 ) {
74- return ecc_set_dp (ecc_get_set ("SECP384R1" ), key );
83+ if ((err = ecc_get_set_by_name ("SECP384R1" , & dp )) != CRYPT_OK ) return err ;
84+ return ecc_set_dp (dp , key );
7585 }
7686 else if (size <= 66 ) {
77- return ecc_set_dp (ecc_get_set ("SECP521R1" ), key );
87+ if ((err = ecc_get_set_by_name ("SECP521R1" , & dp )) != CRYPT_OK ) return err ;
88+ return ecc_set_dp (dp , key );
7889 }
79- return CRYPT_INVALID_KEYSIZE ;
90+
91+ return CRYPT_INVALID_ARG ;
8092}
8193
8294#endif
0 commit comments