Skip to content

Commit

Permalink
fixed array deference hack; fixed unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew D. Yates committed May 30, 2011
1 parent 2c1d8f8 commit 6b69572
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 9 deletions.
2 changes: 1 addition & 1 deletion __init__.py
Expand Up @@ -142,7 +142,7 @@ def verify(xml, f_public, key_size):


# compute the given signed value # compute the given signed value
signature_value = RX_SIG_VALUE.search(signature_xml).group(1) signature_value = RX_SIG_VALUE.search(signature_xml).group(1)
expected = f_public(b64d(signature_value))[0] expected = f_public(b64d(signature_value))


# compute the actual signed value # compute the actual signed value
signed_info_xml = _signed_info(unsigned_xml) signed_info_xml = _signed_info(unsigned_xml)
Expand Down
12 changes: 4 additions & 8 deletions test.py
Expand Up @@ -8,11 +8,12 @@
import __init__ as top import __init__ as top




# in bits
KEY_SIZE = 128 KEY_SIZE = 128
XML = '<samlp:Response xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="123"></samlp:Response>' XML = '<samlp:Response xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="123"></samlp:Response>'


# trivial public key (values not used in encryption) # trivial public key (values not used in encryption)
MOD = '\x00' * KEY_SIZE MOD = '\x00' * (KEY_SIZE / 8)
EXP = '\x03' EXP = '\x03'


# obviously fake certificate encoding # obviously fake certificate encoding
Expand All @@ -28,7 +29,7 @@


# expected values for tests # expected values for tests
EXP_KEY_INFO_XML_RSA = \ EXP_KEY_INFO_XML_RSA = \
"<KeyInfo><KeyValue><RSAKeyValue><Modulus>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Modulus><Exponent>Aw==</Exponent></RSAKeyValue></KeyValue></KeyInfo>" "<KeyInfo><KeyValue><RSAKeyValue><Modulus>AAAAAAAAAAAAAAAAAAAAAA==</Modulus><Exponent>Aw==</Exponent></RSAKeyValue></KeyValue></KeyInfo>"
EXP_KEY_INFO_XML_CERT = \ EXP_KEY_INFO_XML_CERT = \
"<KeyInfo><X509Data><X509SubjectName>DUMMY SUBJECT</X509SubjectName><X509Certificate>ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD</X509Certificate></X509Data></KeyInfo>" "<KeyInfo><X509Data><X509SubjectName>DUMMY SUBJECT</X509SubjectName><X509Certificate>ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD</X509Certificate></X509Data></KeyInfo>"
EXP_KEY_INFO_XML_CERT_NO_SUBJECT = \ EXP_KEY_INFO_XML_CERT_NO_SUBJECT = \
Expand Down Expand Up @@ -65,15 +66,10 @@ def test_sign_with_id(self):
top.sign(XML, private_f, KEY_INFO_XML, KEY_SIZE, sig_id_value=SIG_ID) top.sign(XML, private_f, KEY_INFO_XML, KEY_SIZE, sig_id_value=SIG_ID)
self.assertEqual(signed_xml, EXP_SIGNED_XML_WITH_ID) self.assertEqual(signed_xml, EXP_SIGNED_XML_WITH_ID)


# FIX THIS TEST
def test_verify(self): def test_verify(self):
signed_xml = top.sign(XML, private_f, KEY_INFO_XML, KEY_SIZE) signed_xml = top.sign(XML, private_f, KEY_INFO_XML, KEY_SIZE)
#signed_xml = EXP_SIGNED_XML
print "???"
print signed_xml == EXP_SIGNED_XML
print "???"
is_verified = top.verify(signed_xml, public_f, KEY_SIZE) is_verified = top.verify(signed_xml, public_f, KEY_SIZE)
#self.assertTrue(is_verified) self.assertTrue(is_verified)


class TestB64(unittest.TestCase): class TestB64(unittest.TestCase):


Expand Down

0 comments on commit 6b69572

Please sign in to comment.