| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include "crypto/p224.h" | 10 #include "crypto/p224.h" |
| (...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 TEST(P224, ExternalToInternalAndBack) { | 771 TEST(P224, ExternalToInternalAndBack) { |
| 772 Point point; | 772 Point point; |
| 773 | 773 |
| 774 EXPECT_TRUE(point.SetFromString(base::StringPiece( | 774 EXPECT_TRUE(point.SetFromString(base::StringPiece( |
| 775 reinterpret_cast<const char *>(kBasePointExternal), | 775 reinterpret_cast<const char *>(kBasePointExternal), |
| 776 sizeof(kBasePointExternal)))); | 776 sizeof(kBasePointExternal)))); |
| 777 | 777 |
| 778 const std::string external = point.ToString(); | 778 const std::string external = point.ToString(); |
| 779 | 779 |
| 780 ASSERT_EQ(external.size(), 56u); | 780 ASSERT_EQ(external.size(), 56u); |
| 781 EXPECT_TRUE(memcmp(external.data(), kBasePointExternal, | 781 EXPECT_EQ(0, memcmp(external.data(), kBasePointExternal, |
| 782 sizeof(kBasePointExternal)) == 0); | 782 sizeof(kBasePointExternal))); |
| 783 } | 783 } |
| 784 | 784 |
| 785 TEST(P224, ScalarBaseMult) { | 785 TEST(P224, ScalarBaseMult) { |
| 786 Point point; | 786 Point point; |
| 787 | 787 |
| 788 for (size_t i = 0; i < arraysize(kNISTTestVectors); i++) { | 788 for (size_t i = 0; i < arraysize(kNISTTestVectors); i++) { |
| 789 p224::ScalarBaseMult(kNISTTestVectors[i].scalar, &point); | 789 p224::ScalarBaseMult(kNISTTestVectors[i].scalar, &point); |
| 790 const std::string external = point.ToString(); | 790 const std::string external = point.ToString(); |
| 791 ASSERT_EQ(external.size(), 56u); | 791 ASSERT_EQ(external.size(), 56u); |
| 792 EXPECT_TRUE(memcmp(external.data(), kNISTTestVectors[i].affine, | 792 EXPECT_EQ(0, memcmp(external.data(), kNISTTestVectors[i].affine, |
| 793 external.size()) == 0); | 793 external.size())); |
| 794 } | 794 } |
| 795 } | 795 } |
| 796 | 796 |
| 797 TEST(P224, Addition) { | 797 TEST(P224, Addition) { |
| 798 Point a, b, minus_b, sum, a_again; | 798 Point a, b, minus_b, sum, a_again; |
| 799 | 799 |
| 800 ASSERT_TRUE(a.SetFromString(base::StringPiece( | 800 ASSERT_TRUE(a.SetFromString(base::StringPiece( |
| 801 reinterpret_cast<const char *>(kNISTTestVectors[10].affine), 56))); | 801 reinterpret_cast<const char *>(kNISTTestVectors[10].affine), 56))); |
| 802 ASSERT_TRUE(b.SetFromString(base::StringPiece( | 802 ASSERT_TRUE(b.SetFromString(base::StringPiece( |
| 803 reinterpret_cast<const char *>(kNISTTestVectors[11].affine), 56))); | 803 reinterpret_cast<const char *>(kNISTTestVectors[11].affine), 56))); |
| 804 | 804 |
| 805 p224::Negate(b, &minus_b); | 805 p224::Negate(b, &minus_b); |
| 806 p224::Add(a, b, &sum); | 806 p224::Add(a, b, &sum); |
| 807 EXPECT_TRUE(memcmp(&sum, &a, sizeof(sum)) != 0); | 807 EXPECT_NE(0, memcmp(&sum, &a, sizeof(sum))); |
| 808 p224::Add(minus_b, sum, &a_again); | 808 p224::Add(minus_b, sum, &a_again); |
| 809 EXPECT_TRUE(a_again.ToString() == a.ToString()); | 809 EXPECT_EQ(a_again.ToString(), a.ToString()); |
| 810 } | 810 } |
| 811 | 811 |
| 812 TEST(P224, Infinity) { | 812 TEST(P224, Infinity) { |
| 813 char zeros[56]; | 813 char zeros[56]; |
| 814 memset(zeros, 0, sizeof(zeros)); | 814 memset(zeros, 0, sizeof(zeros)); |
| 815 | 815 |
| 816 // Test that x^0 = ∞. | 816 // Test that x^0 = ∞. |
| 817 Point a; | 817 Point a; |
| 818 p224::ScalarBaseMult(reinterpret_cast<const uint8_t*>(zeros), &a); | 818 p224::ScalarBaseMult(reinterpret_cast<const uint8_t*>(zeros), &a); |
| 819 EXPECT_TRUE(memcmp(zeros, a.ToString().data(), sizeof(zeros)) == 0); | 819 EXPECT_EQ(0, memcmp(zeros, a.ToString().data(), sizeof(zeros))); |
| 820 | 820 |
| 821 // We shouldn't allow ∞ to be imported. | 821 // We shouldn't allow ∞ to be imported. |
| 822 EXPECT_FALSE(a.SetFromString(std::string(zeros, sizeof(zeros)))); | 822 EXPECT_FALSE(a.SetFromString(std::string(zeros, sizeof(zeros)))); |
| 823 } | 823 } |
| 824 | 824 |
| 825 } // namespace crypto | 825 } // namespace crypto |
| OLD | NEW |