#!/usr/bin/env python

__author__   = "Myers Carpenter <icepick@icepick.info>"
__revision__ = "$Id: test_template,v 1.1 2003/10/13 13:28:58 myers Exp $"

import unittest, sys

from ssl import dh

class DHTestCase(unittest.TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def testCallback(self):
        global called 
        called = False
        def callback(status, type):
            global called
            called = True

        dd = dh.DH.generateParameters(128, 5, callback)
        assert called == True
 
    def testGenerateParameters(self):
        dd = dh.DH.generateParameters(128, 5)

    def testSizeOfGeneratedParameters(self):
        dd = dh.DH.generateParameters(128, 5)
        assert dd.size() * 8 == 128
            
    def testGetterSetter(self):
        dd = dh.DH()
        dd.p = dh.RFC2412_P
        assert dd.p == dh.RFC2412_P
        dd.g = dh.RFC2412_G
        assert dd.g == dh.RFC2412_G
        
        

    def testPEM(self):
        d1 = dh.DH.generateParameters(128, 5)
        #d1.p = dh.RFC2412_P
        #d1.g = dh.RFC2412_G
        
        pem = d1.asPEM()
        d2 = dh.DH.fromPEM(pem)
        assert d1 == d2

if __name__ == "__main__":
    unittest.main()
