当前位置: 首页>>代码示例>>Python>>正文


Python asn1.DerInteger类代码示例

本文整理汇总了Python中Crypto.Util.asn1.DerInteger的典型用法代码示例。如果您正苦于以下问题:Python DerInteger类的具体用法?Python DerInteger怎么用?Python DerInteger使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了DerInteger类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: testStrict1

    def testStrict1(self):
        number = DerInteger()

        number.decode(b'\x02\x02\x00\x01')
        number.decode(b'\x02\x02\x00\x7F')
        self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x01', strict=True)
        self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x7F', strict=True)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:7,代码来源:test_asn1.py

示例2: testDecode2

 def testDecode2(self):
     # Multi-byte integer
     der = DerInteger()
     # Value 0x180L
     der.decode(b('\x02\x02\x01\x80'))
     self.assertEqual(der.value,0x180)
     # One very long integer
     der.decode(
     b('\x02\x82\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00'))
     self.assertEqual(der.value,2**2048)
开发者ID:shubhanus,项目名称:taiga,代码行数:28,代码来源:test_asn1.py

示例3: testDecode3

 def testDecode3(self):
     # Negative integer
     der = DerInteger()
     # Value -1
     der.decode(b('\x02\x01\xFF'))
     self.assertEqual(der.value, -1)
     # Value -32768
     der.decode(b('\x02\x02\x80\x00'))
     self.assertEqual(der.value, -32768)
开发者ID:shubhanus,项目名称:taiga,代码行数:9,代码来源:test_asn1.py

示例4: _extract_sp_info

def _extract_sp_info(x509_certificate):
    """Extract subjectPublicKeyInfo from a DER X.509 certificate."""

    from Crypto.Util.asn1 import DerSequence, DerInteger

    try:
        # This code will partially parse tbsCertificate
        # to get to subjectPublicKeyInfo.
        #
        # However, the first 2 elements of tbsCertificate are:
        #
        #   version [0]  Version DEFAULT v1,
        #   serialNumber         CertificateSerialNumber,
        #
        # where:
        #
        #   Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
        #   CertificateSerialNumber  ::=  INTEGER
        #
        # In order to know the position of subjectPublicKeyInfo
        # in the tbsCertificate SEQUENCE, we try to see if the
        # first element is an untagged INTEGER (that is, the
        # certificate serial number).

        x509_tbs_cert = DerSequence()
        x509_tbs_cert.decode(x509_certificate[0])

        index = -1  # Sentinel
        try:
            _ = x509_tbs_cert[0] + 1
            # Still here? There was no version then
            index = 5
        except TypeError:
            # Landed here? Version was there
            x509_version = DerInteger(explicit=0)
            x509_version.decode(x509_tbs_cert[0])
            index = 6

        if index in (5, 6):
            return x509_tbs_cert[index]

    except (TypeError, IndexError, ValueError, EOFError):
        pass

    raise ValueError("Cannot extract subjectPublicKeyInfo")
开发者ID:Gnof,项目名称:pycryptodome,代码行数:45,代码来源:__init__.py

示例5: testEncode2

 def testEncode2(self):
     # Multi-byte integers
     # Value 128
     der = DerInteger(128)
     self.assertEqual(der.encode(), b('\x02\x02\x00\x80'))
     # Value 0x180
     der = DerInteger(0x180)
     self.assertEqual(der.encode(), b('\x02\x02\x01\x80'))
     # One very long integer
     der = DerInteger(2**2048)
     self.assertEqual(der.encode(),
     b('\x02\x82\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00'))
开发者ID:shubhanus,项目名称:taiga,代码行数:30,代码来源:test_asn1.py

示例6: testDecode5

 def testDecode5(self):
     # We still accept BER integer format
     der = DerInteger()
     # Redundant leading zeroes
     der.decode(b('\x02\x02\x00\x01'))
     self.assertEqual(der.value, 1)
     # Redundant leading 0xFF
     der.decode(b('\x02\x02\xFF\xFF'))
     self.assertEqual(der.value, -1)
     # Empty payload
     der.decode(b('\x02\x00'))
     self.assertEqual(der.value, 0)
开发者ID:shubhanus,项目名称:taiga,代码行数:12,代码来源:test_asn1.py

示例7: testDecode1

 def testDecode1(self):
     # Single-byte integer
     der = DerInteger()
     # Value 0
     der.decode(b('\x02\x01\x00'))
     self.assertEqual(der.value, 0)
     # Value 1
     der.decode(b('\x02\x01\x01'))
     self.assertEqual(der.value, 1)
     # Value 127
     der.decode(b('\x02\x01\x7F'))
     self.assertEqual(der.value, 127)
开发者ID:shubhanus,项目名称:taiga,代码行数:12,代码来源:test_asn1.py

示例8: testEncode3

 def testEncode3(self):
     # Negative integers
     # Value -1
     der = DerInteger(-1)
     self.assertEqual(der.encode(), b('\x02\x01\xFF'))
     # Value -128
     der = DerInteger(-128)
     self.assertEqual(der.encode(), b('\x02\x01\x80'))
     # Value
     der = DerInteger(-87873)
     self.assertEqual(der.encode(), b('\x02\x03\xFE\xA8\xBF'))
开发者ID:shubhanus,项目名称:taiga,代码行数:11,代码来源:test_asn1.py

示例9: testEncode1

 def testEncode1(self):
     # Single-byte integers
     # Value 0
     der = DerInteger(0)
     self.assertEqual(der.encode(), b('\x02\x01\x00'))
     # Value 1
     der = DerInteger(1)
     self.assertEqual(der.encode(), b('\x02\x01\x01'))
     # Value 127
     der = DerInteger(127)
     self.assertEqual(der.encode(), b('\x02\x01\x7F'))
开发者ID:shubhanus,项目名称:taiga,代码行数:11,代码来源:test_asn1.py

示例10: testDecode7

 def testDecode7(self):
     # Verify decode returns the DerInteger
     der = DerInteger()
     self.assertEqual(der, der.decode(b('\x02\x01\x7F')))
开发者ID:shubhanus,项目名称:taiga,代码行数:4,代码来源:test_asn1.py

示例11: testDecode6

 def testDecode6(self):
     # Explicit encoding
     number = DerInteger(explicit=3)
     number.decode(b('\xa3\x03\x02\x01\x34'))
     self.assertEqual(number.value, 0x34)
开发者ID:shubhanus,项目名称:taiga,代码行数:5,代码来源:test_asn1.py

示例12: testEncode4

 def testEncode4(self):
     # Explicit encoding
     number = DerInteger(0x34, explicit=3)
     self.assertEqual(number.encode(), b('\xa3\x03\x02\x01\x34'))
开发者ID:shubhanus,项目名称:taiga,代码行数:4,代码来源:test_asn1.py

示例13: testInit1

 def testInit1(self):
     der = DerInteger(1)
     self.assertEqual(der.encode(), b('\x02\x01\x01'))
开发者ID:shubhanus,项目名称:taiga,代码行数:3,代码来源:test_asn1.py


注:本文中的Crypto.Util.asn1.DerInteger类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。