def test_04_preshared_key(self): ''' testing import PSKC #3 -- preshared key ''' res = parsePSKCdata(self.XML3, preshared_key_hex="12345678901234567890123456789012", do_checkserial=False) print res assert res.get('12345678').get('hmac_key') == "3132333435363738393031323334353637383930"
def test_05_password_based(self): ''' testing import PSKC #4 -- password based encryption ''' res = parsePSKCdata(self.XML4, password="******", do_checkserial=False) print res assert res.get('123456').get('hmac_key') == "3132333435363738393031323334353637383930"
def test_01_xml1(self): """ testing import PSKC #1 -- no valid OATH serial """ res = parsePSKCdata(self.XML1) print(res) assert res == {}
def test_03_xml2(self): ''' testing import PSKC #2 -- 2 valid OATH serials ''' res = parsePSKCdata(self.XML2) print res assert len(res) == 2
def test_01_xml1(self): ''' testing import PSKC #1 -- no valid OATH serial ''' res = parsePSKCdata(self.XML1) print res assert res == {}
def test_05_password_based(self): ''' testing import PSKC #4 -- password based encryption ''' res = parsePSKCdata(self.XML4, password="******", do_checkserial=False) print(res) assert res.get('123456').get( 'hmac_key') == "3132333435363738393031323334353637383930"
def test_02_xml1(self): ''' testing import PSKC #1 -- ignore OATH serial ''' res = parsePSKCdata(self.XML1, do_checkserial=False) print res assert len(res) == 1 assert res.get('12345678') assert res.get('12345678').get('otplen') == 8 assert res.get('12345678').get('hmac_key') == '3132333435363738393031323334353637383930'
def test_05_password_based(self): """ testing import PSKC #4 -- password based encryption """ res = parsePSKCdata(self.XML4, password="******", do_checkserial=False) print(res) assert ( res.get("123456").get("hmac_key") == "3132333435363738393031323334353637383930" )
def test_04_preshared_key(self): ''' testing import PSKC #3 -- preshared key ''' res = parsePSKCdata( self.XML3, preshared_key_hex="12345678901234567890123456789012", do_checkserial=False) print(res) assert res.get('12345678').get( 'hmac_key') == "3132333435363738393031323334353637383930"
def test_02_xml1(self): """ testing import PSKC #1 -- ignore OATH serial """ res = parsePSKCdata(self.XML1, do_checkserial=False) print(res) assert len(res) == 1 assert res.get("987654321") assert res.get("987654321").get("otplen") == 8 assert ( res.get("987654321").get("hmac_key") == "3132333435363738393031323334353637383930" )
def test_04_preshared_key(self): """ testing import PSKC #3 -- preshared key """ res = parsePSKCdata( self.XML3, preshared_key_hex="12345678901234567890123456789012", do_checkserial=False, ) print(res) assert ( res.get("12345678").get("hmac_key") == "3132333435363738393031323334353637383930" )
def test_parse_PSKC_OCRA(self): ''' Test import OCRA via PSCK ''' xml = self._read_data("ocra_pskc_tokens.xml") from linotp.lib.ImportOTP.PSKC import parsePSKCdata TOKENS = parsePSKCdata(xml, preshared_key_hex="4A057F6AB6FCB57AB5408E46A9835E68", do_checkserial=False) self.assertTrue(len(TOKENS) == 3, TOKENS) self.assertTrue(TOKENS.get("306EUO4-00954") is not None, TOKENS) self.assertTrue(TOKENS.get("306EUO4-00958") is not None, TOKENS) self.assertTrue(TOKENS.get("306EUO4-00960") is not None, TOKENS) return
def test_parse_PSKC_OCRA(self): ''' Test import OCRA via PSCK ''' xml = '''<?xml version="1.0" encoding="UTF-8"?> <KeyContainer Version="1.0" Id="KC20130122" xmlns="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <EncryptionKey> <ds:KeyName>Pre-shared-key</ds:KeyName> </EncryptionKey> <MACMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"> <MACKey> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <xenc:CipherData> <xenc:CipherValue>OdudVkgsZywiwE1HqPGOJtHmBl+6HzJkylgDrZU9gcflyCddzO+cxEwzYIlOiwrE</xenc:CipherValue> </xenc:CipherData> </MACKey> </MACMethod> <KeyPackage> <DeviceInfo> <Manufacturer>NagraID Security</Manufacturer> <SerialNo>306EUO4-00960</SerialNo> <Model>306E</Model> <IssueNo>880479B6A2CA2080</IssueNo> </DeviceInfo> <Key Id="880479B6A2CA2080" Algorithm="urn:ietf:params:xml:ns:keyprov:pskc:ocra"> <AlgorithmParameters> <Suite>OCRA-1:HOTP-SHA1-6:C-QN08-PSHA1</Suite> <ResponseFormat Length="6" Encoding="DECIMAL"/> </AlgorithmParameters> <Data> <Secret> <EncryptedValue> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <xenc:CipherData> <xenc:CipherValue>VHdEP8TXnMmE3yiAnB5Fx+SQ85UXCNAxH7IyOixJpUZHMk9GTdFYWNsxZp8jVpfp</xenc:CipherValue> </xenc:CipherData> </EncryptedValue> <ValueMAC>uQ1Bef+XVXHQoW4ZzyQ/cv/9zYA=</ValueMAC> </Secret> <Counter> <PlainValue>0</PlainValue> </Counter> </Data> </Key> </KeyPackage> <KeyPackage> <DeviceInfo> <Manufacturer>NagraID Security</Manufacturer> <SerialNo>306EUO4-00954</SerialNo> <Model>306E</Model> <IssueNo>880489CFA2CA2080</IssueNo> </DeviceInfo> <Key Id="880489CFA2CA2080" Algorithm="urn:ietf:params:xml:ns:keyprov:pskc:ocra"> <AlgorithmParameters> <Suite>OCRA-1:HOTP-SHA1-6:C-QN08-PSHA1</Suite> <ResponseFormat Length="6" Encoding="DECIMAL"/> </AlgorithmParameters> <Data> <Secret> <EncryptedValue> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <xenc:CipherData> <xenc:CipherValue>YTvA1cSntb4cPJHPFkJwuSZkAsLPo+o1EJPA22DeijZRaKhJAwArQKbwDwSmNrR1</xenc:CipherValue> </xenc:CipherData> </EncryptedValue> <ValueMAC>N8QGRQ7yKd8suyUgaEVme7f0HrA=</ValueMAC> </Secret> <Counter> <PlainValue>0</PlainValue> </Counter> </Data> </Key> </KeyPackage> <KeyPackage> <DeviceInfo> <Manufacturer>NagraID Security</Manufacturer> <SerialNo>306EUO4-00958</SerialNo> <Model>306E</Model> <IssueNo>880497B3A2CA2080</IssueNo> </DeviceInfo> <Key Id="880497B3A2CA2080" Algorithm="urn:ietf:params:xml:ns:keyprov:pskc:ocra"> <AlgorithmParameters> <Suite>OCRA-1:HOTP-SHA1-6:C-QN08-PSHA1</Suite> <ResponseFormat Length="6" Encoding="DECIMAL"/> </AlgorithmParameters> <Data> <Secret> <EncryptedValue> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <xenc:CipherData> <xenc:CipherValue>BdxW7Pb46LafGV8k2zDQ48ujoyYX7M+JumfS3Wx5dP1E9y5By/97QTMiGkzJrcWj</xenc:CipherValue> </xenc:CipherData> </EncryptedValue> <ValueMAC>WGhmLhbGn4Dksa7lHKfKOqbsJhU=</ValueMAC> </Secret> <Counter> <PlainValue>0</PlainValue> </Counter> </Data> </Key> </KeyPackage> </KeyContainer> ''' from linotp.lib.ImportOTP.PSKC import parsePSKCdata TOKENS = parsePSKCdata(xml, preshared_key_hex="4A057F6AB6FCB57AB5408E46A9835E68", do_checkserial=False) log.error(TOKENS) assert(len(TOKENS) == 3) assert(TOKENS.get("306EUO4-00954") is not None) assert(TOKENS.get("306EUO4-00958") is not None) assert(TOKENS.get("306EUO4-00960") is not None)