File: test_des.py

package info (click to toggle)
python-pkcs11 0.9.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 932 kB
  • sloc: python: 4,067; ansic: 2,764; makefile: 24
file content (40 lines) | stat: -rw-r--r-- 1,274 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""
PKCS#11 DES Secret Keys
"""

import pkcs11
from pkcs11 import KeyType, Mechanism

from . import TestCase, requires


class DESTests(TestCase):
    @requires(Mechanism.DES2_KEY_GEN)
    def test_generate_des2_key(self):
        key = self.session.generate_key(KeyType.DES2)
        self.assertIsInstance(key, pkcs11.SecretKey)

    @requires(Mechanism.DES3_KEY_GEN)
    def test_generate_des3_key(self):
        key = self.session.generate_key(KeyType.DES3)
        self.assertIsInstance(key, pkcs11.SecretKey)

    @requires(Mechanism.DES2_KEY_GEN, Mechanism.DES3_CBC_PAD)
    def test_encrypt_des2(self):
        key = self.session.generate_key(KeyType.DES2)

        iv = self.session.generate_random(64)
        crypttext = key.encrypt("PLAIN TEXT_", mechanism_param=iv)
        plaintext = key.decrypt(crypttext, mechanism_param=iv)

        self.assertEqual(plaintext, b"PLAIN TEXT_")

    @requires(Mechanism.DES3_KEY_GEN, Mechanism.DES3_CBC_PAD)
    def test_encrypt_des3(self):
        key = self.session.generate_key(KeyType.DES3)

        iv = self.session.generate_random(64)
        crypttext = key.encrypt("PLAIN TEXT_", mechanism_param=iv)
        plaintext = key.decrypt(crypttext, mechanism_param=iv)

        self.assertEqual(plaintext, b"PLAIN TEXT_")