blob: 2ca0a9a0f63d1f1a50a0170e88893d52a272c759 [file] [log] [blame]
Roy Kokkelkoren0659aac2015-10-25 16:12:11 +01001# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
Sybren A. Stüvel3934ab42016-02-05 16:01:20 +01007# https://www.apache.org/licenses/LICENSE-2.0
Roy Kokkelkoren0659aac2015-10-25 16:12:11 +01008#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
Sybren A. Stüveld3d10342016-01-22 11:36:06 +010015"""Tests integer operations."""
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020016
Sybren A. Stüveled1c81d2016-01-14 12:23:32 +010017import unittest
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020018
Sybren A. Stüveld3d10342016-01-22 11:36:06 +010019import rsa
Sybren A. Stüvel8c857f42011-07-30 20:39:02 +020020import rsa.core
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020021
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020022
Sybren A. Stüveld3d10342016-01-22 11:36:06 +010023class IntegerTest(unittest.TestCase):
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020024 def setUp(self):
25 (self.pub, self.priv) = rsa.newkeys(64)
26
27 def test_enc_dec(self):
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020028 message = 42
Yesudeep Mangalapilly58024312011-08-11 01:48:25 +053029 print("\tMessage: %d" % message)
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020030
Sybren A. Stüvel8c857f42011-07-30 20:39:02 +020031 encrypted = rsa.core.encrypt_int(message, self.pub.e, self.pub.n)
Yesudeep Mangalapilly58024312011-08-11 01:48:25 +053032 print("\tEncrypted: %d" % encrypted)
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020033
Sybren A. Stüvel8c857f42011-07-30 20:39:02 +020034 decrypted = rsa.core.decrypt_int(encrypted, self.priv.d, self.pub.n)
Yesudeep Mangalapilly58024312011-08-11 01:48:25 +053035 print("\tDecrypted: %d" % decrypted)
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020036
37 self.assertEqual(message, decrypted)
38
39 def test_sign_verify(self):
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020040 message = 42
41
Sybren A. Stüveld3d10342016-01-22 11:36:06 +010042 signed = rsa.core.encrypt_int(message, self.priv.d, self.pub.n)
Yesudeep Mangalapilly58024312011-08-11 01:48:25 +053043 print("\tSigned: %d" % signed)
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020044
Sybren A. Stüveld3d10342016-01-22 11:36:06 +010045 verified = rsa.core.decrypt_int(signed, self.pub.e, self.pub.n)
Yesudeep Mangalapilly58024312011-08-11 01:48:25 +053046 print("\tVerified: %d" % verified)
Sybren A. Stüvelff3a1d02011-06-20 00:13:53 +020047
48 self.assertEqual(message, verified)