@@ -118,6 +118,7 @@ int main(void)
118118#if defined(HAVE_ECC ) && defined(WOLFSSL_PUBLIC_MP )
119119 const char * curve_str = "SECP256R1" ;
120120 int curve_id = ECC_SECP256R1 ;
121+ int rc = 0 ;
121122 unsigned char param [MAX_ECC_BYTES ];
122123
123124 wolfSSL_Debugging_ON ();
@@ -126,27 +127,51 @@ int main(void)
126127
127128 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_PRIME , param , sizeof (param ));
128129 printf ("Prime: %d\n" , ret );
129- WOLFSSL_BUFFER (param , ret );
130+ if (ret < 0 )
131+ rc = ret ;
132+ else
133+ WOLFSSL_BUFFER (param , ret );
130134
131135 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_AF , param , sizeof (param ));
132136 printf ("Af: %d\n" , ret );
133- WOLFSSL_BUFFER (param , ret );
137+ if (ret < 0 )
138+ rc = ret ;
139+ else
140+ WOLFSSL_BUFFER (param , ret );
134141
135142 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_BF , param , sizeof (param ));
136143 printf ("Bf: %d\n" , ret );
137- WOLFSSL_BUFFER (param , ret );
144+ if (ret < 0 )
145+ rc = ret ;
146+ else
147+ WOLFSSL_BUFFER (param , ret );
138148
139149 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_ORDER , param , sizeof (param ));
140150 printf ("Order: %d\n" , ret );
141- WOLFSSL_BUFFER (param , ret );
151+ if (ret < 0 )
152+ rc = ret ;
153+ else
154+ WOLFSSL_BUFFER (param , ret );
142155
143156 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_GX , param , sizeof (param ));
144157 printf ("Gx: %d\n" , ret );
145- WOLFSSL_BUFFER (param , ret );
158+ if (ret < 0 )
159+ rc = ret ;
160+ else
161+ WOLFSSL_BUFFER (param , ret );
146162
147163 ret = load_curve_param (curve_id , ECC_CURVE_FIELD_GY , param , sizeof (param ));
148164 printf ("Gy: %d\n" , ret );
149- WOLFSSL_BUFFER (param , ret );
165+ if (ret < 0 )
166+ rc = ret ;
167+ else
168+ WOLFSSL_BUFFER (param , ret );
169+
170+ /* load_curve_param returns a length, so only a negative value is an error.
171+ * rc latches a failure across all six calls; ret alone holds only the last.
172+ * Return 1, not rc: an exit status is truncated mod 256, and -132 would
173+ * surface as 124 -- the shell's timeout code. */
174+ ret = (rc < 0 ) ? 1 : 0 ;
150175#else
151176 printf ("Must build wolfSSL with ./configure CFLAGS=\"-DWOLFSSL_PUBLIC_MP\"\n" );
152177#endif
0 commit comments