Fix ECDSA signature verification
authorDmitrii Zhuravlev <d.zhuravlev@samsung.com>
Tue, 6 Oct 2015 18:59:02 +0000 (21:59 +0300)
committerSachin Agrawal <sachin.agrawal@intel.com>
Wed, 7 Oct 2015 03:47:21 +0000 (03:47 +0000)
Change-Id: Ib1b3769fc42143878d84f58830af1d3976409524
Signed-off-by: Dmitrii Zhuravlev <d.zhuravlev@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/3653
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sachin Agrawal <sachin.agrawal@intel.com>
extlibs/tinydtls/crypto.c

index d8e5e8e..58d9899 100644 (file)
@@ -631,8 +631,12 @@ dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x,
     memcpy(publicKey + 32, pub_key_y, 32);
 
     // Copy the signature into a single buffer
-    memcpy(sign, result_r, 32);
-    memcpy(sign + 32, result_s, 32);
+    int i;
+    for (i = 0; i < 32; i++)
+    {
+        sign[i] = result_r[31 - i];
+        sign[i + 32] = result_s[31 - i];
+    }
 
     return uECC_verify(publicKey, sign_hash, sign);
 }