Esempio n. 1
0
 def verify(self, pkey=None):
     # type: (Optional[EVP.PKey]) -> int
     assert m2.x509_type_check(self.x509), "'x509' type error"
     if pkey:
         return m2.x509_verify(self.x509, pkey.pkey)
     else:
         return m2.x509_verify(self.x509, self.get_pubkey().pkey)
Esempio n. 2
0
 def set_issuer_name(self, name):
     # type: (X509_Name) -> int
     """
     :return: 1 on success, 0 on failure
     """
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_issuer_name(self.x509, name.x509_name)
Esempio n. 3
0
 def set_not_before(self, asn1_utctime):
     # type: (ASN1.ASN1_UTCTIME) -> int
     """
     @return: 1 on success, 0 on failure
     """
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_not_before(self.x509, asn1_utctime._ptr())
Esempio n. 4
0
 def set_not_after(self, asn1_time):
     # type: (ASN1.ASN1_TIME) -> int
     """
     :return: 1 on success, 0 on failure
     """
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_not_after(self.x509, asn1_time._ptr())
Esempio n. 5
0
 def set_issuer_name(self, name):
     # type: (X509_Name) -> int
     """
     :return: 1 on success, 0 on failure
     """
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_issuer_name(self.x509, name.x509_name)
Esempio n. 6
0
 def set_not_after(self, asn1_time):
     # type: (ASN1.ASN1_TIME) -> int
     """
     :return: 1 on success, 0 on failure
     """
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_not_after(self.x509, asn1_time._ptr())
Esempio n. 7
0
 def verify(self, pkey=None):
     # type: (Optional[EVP.PKey]) -> int
     assert m2.x509_type_check(self.x509), "'x509' type error"
     if pkey:
         return m2.x509_verify(self.x509, pkey.pkey)
     else:
         return m2.x509_verify(self.x509, self.get_pubkey().pkey)
Esempio n. 8
0
 def __init__(self, x509=None, _pyfree=0):
     if x509 is not None:
         assert m2.x509_type_check(x509), "'x509' type error"
         self.x509 = x509
         self._pyfree = _pyfree
     else:
         self.x509 = m2.x509_new()
         self._pyfree = 1
Esempio n. 9
0
 def get_not_after(self):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     out = ASN1.ASN1_UTCTIME(m2.x509_get_not_after(self.x509))
     if 'Bad time value' in str(out):
         raise X509Error('''M2Crypto cannot handle dates after year 2050.
             See RFC 5280 4.1.2.5 for more information.
             ''')
     return out
Esempio n. 10
0
 def __init__(self, x509=None, _pyfree=0):
     if x509 is not None:
         assert m2.x509_type_check(x509), "'x509' type error"
         self.x509 = x509
         self._pyfree = _pyfree
     else:
         self.x509 = m2.x509_new()
         self._pyfree = 1
Esempio n. 11
0
    def set_subject(self, name):
        """
        Set subject name.

        @type name:     X509_Name
        @param name:    subjectName field.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_subject_name(self.x509, name.x509_name)
Esempio n. 12
0
    def add_ext(self, ext):
        """
        Add X509 extension to this certificate.

        @type ext:     X509_Extension
        @param ext:    Extension
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_add_ext(self.x509, ext.x509_ext, -1)
Esempio n. 13
0
    def set_subject(self, name):
        """
        Set subject name.

        @type name:     X509_Name
        @param name:    subjectName field.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_subject_name(self.x509, name.x509_name)
Esempio n. 14
0
    def add_ext(self, ext):
        """
        Add X509 extension to this certificate.

        @type ext:     X509_Extension
        @param ext:    Extension
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_add_ext(self.x509, ext.x509_ext, -1)
Esempio n. 15
0
    def set_pubkey(self, pkey):
        """
        Set the public key for the certificate

        @type pkey:  EVP_PKEY
        @param pkey: Public key
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_pubkey(self.x509, pkey.pkey)
Esempio n. 16
0
 def get_not_after(self):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     out = ASN1.ASN1_UTCTIME(m2.x509_get_not_after(self.x509))
     if 'Bad time value' in str(out):
         raise X509Error(
             '''M2Crypto cannot handle dates after year 2050.
             See RFC 5280 4.1.2.5 for more information.
             ''')
     return out
Esempio n. 17
0
    def set_pubkey(self, pkey):
        """
        Set the public key for the certificate

        @type pkey:  EVP_PKEY
        @param pkey: Public key
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_pubkey(self.x509, pkey.pkey)
Esempio n. 18
0
    def set_version(self, version):
        # type: (int) -> int
        """
        Set version of the certificate.

        :param version: Version number.
        :return:        Returns 0 on failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_version(self.x509, version)
Esempio n. 19
0
    def set_subject(self, name):
        # type: (X509_Name) -> int
        """
        Set subject name.

        @param name:    subjectName field.
        @return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_subject_name(self.x509, name.x509_name)
Esempio n. 20
0
    def add_ext(self, ext):
        # type: (X509_Extension) -> int
        """
        Add X509 extension to this certificate.

        @param ext:    Extension
        @return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_add_ext(self.x509, ext.x509_ext, -1)
Esempio n. 21
0
    def set_version(self, version):
        # type: (int) -> int
        """
        Set version of the certificate.

        :param version: Version number.
        :return:        Returns 0 on failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_version(self.x509, version)
Esempio n. 22
0
    def set_pubkey(self, pkey):
        # type: (EVP.PKey) -> int
        """
        Set the public key for the certificate

        @param pkey: Public key
        @return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_pubkey(self.x509, pkey.pkey)
Esempio n. 23
0
    def set_pubkey(self, pkey):
        # type: (EVP.PKey) -> int
        """
        Set the public key for the certificate

        :param pkey: Public key

        :return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_pubkey(self.x509, pkey.pkey)
Esempio n. 24
0
    def set_version(self, version):
        """
        Set version.

        @type version:  int
        @param version: Version number.
        @rtype:         int
        @return:        Returns 0 on failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_version(self.x509, version)
Esempio n. 25
0
    def set_version(self, version):
        """
        Set version.

        @type version:  int
        @param version: Version number.
        @rtype:         int
        @return:        Returns 0 on failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_version(self.x509, version)
Esempio n. 26
0
    def set_subject(self, name):
        # type: (X509_Name) -> int
        """
        Set subject name.

        :param name:    subjectName field.

        :return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_set_subject_name(self.x509, name.x509_name)
Esempio n. 27
0
    def add_ext(self, ext):
        # type: (X509_Extension) -> int
        """
        Add X509 extension to this certificate.

        :param ext:    Extension

        :return 1 for success and 0 for failure
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        return m2.x509_add_ext(self.x509, ext.x509_ext, -1)
Esempio n. 28
0
    def set_serial_number(self, serial):
        """
        Set serial number.

        @type serial:   int
        @param serial:  Serial number.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        # This "magically" changes serial since asn1_integer
        # is C pointer to x509's internal serial number.
        asn1_integer = m2.x509_get_serial_number(self.x509)
        return m2.asn1_integer_set(asn1_integer, serial)
Esempio n. 29
0
    def set_serial_number(self, serial):
        """
        Set serial number.

        @type serial:   int
        @param serial:  Serial number.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        # This "magically" changes serial since asn1_integer
        # is C pointer to x509's internal serial number.
        asn1_integer = m2.x509_get_serial_number(self.x509)
        return m2.asn1_integer_set(asn1_integer, serial)
Esempio n. 30
0
    def set_serial_number(self, serial):
        # type: (ASN1.ASN1_Integer) -> int
        """
        Set serial number.

        @param serial:  Serial number.
        @return 1 for success and 0 for failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        # This "magically" changes serial since asn1_integer
        # is C pointer to x509's internal serial number.
        asn1_integer = m2.x509_get_serial_number(self.x509)
        return m2.asn1_integer_set(asn1_integer, serial)
Esempio n. 31
0
 def __init__(self, x509=None, _pyfree=0):
     # type: (Optional[bytes], int) -> None
     """
     :param x509: binary representation of
            the underlying OpenSSL X509 object.
     :param _pyfree:
     """
     if x509 is not None:
         assert m2.x509_type_check(x509), "'x509' type error"
         self.x509 = x509
         self._pyfree = _pyfree
     else:
         self.x509 = m2.x509_new()
         self._pyfree = 1
Esempio n. 32
0
 def __init__(self, x509=None, _pyfree=0):
     # type: (Optional[bytes], int) -> None
     """
     :param x509: binary representation of
            the underlying OpenSSL X509 object.
     :param _pyfree:
     """
     if x509 is not None:
         assert m2.x509_type_check(x509), "'x509' type error"
         self.x509 = x509
         self._pyfree = _pyfree
     else:
         self.x509 = m2.x509_new()
         self._pyfree = 1
Esempio n. 33
0
    def set_serial_number(self, serial):
        # type: (ASN1.ASN1_Integer) -> int
        """
        Set serial number.

        :param serial:  Serial number.

        :return 1 for success and 0 for failure.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        # This "magically" changes serial since asn1_integer
        # is C pointer to x509's internal serial number.
        asn1_integer = m2.x509_get_serial_number(self.x509)
        return m2.asn1_integer_set(asn1_integer, serial)
Esempio n. 34
0
    def sign(self, pkey, md):
        """
        Sign the certificate.

        @type pkey:  EVP_PKEY
        @param pkey: Public key
        @type md:    str
        @param md:   Message digest algorithm to use for signing,
                     for example 'sha1'.
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        mda = getattr(m2, md, None)
        if mda is None:
            raise ValueError('unknown message digest', md)
        return m2.x509_sign(self.x509, pkey.pkey, mda())
Esempio n. 35
0
    def sign(self, pkey, md):
        # type: (EVP.PKey, str) -> int
        """
        Sign the certificate.

        @param pkey: Public key
        @param md:   Message digest algorithm to use for signing,
                     for example 'sha1'.
        @return int
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        mda = getattr(m2, md, None)
        if mda is None:
            raise ValueError('unknown message digest', md)
        return m2.x509_sign(self.x509, pkey.pkey, mda())
Esempio n. 36
0
    def sign(self, pkey, md):
        # type: (EVP.PKey, str) -> int
        """
        Sign the certificate.

        :param pkey: Public key

        :param md:   Message digest algorithm to use for signing,
                     for example 'sha1'.

        :return int
        """
        assert m2.x509_type_check(self.x509), "'x509' type error"
        mda = getattr(m2, md, None)
        if mda is None:
            raise ValueError('unknown message digest', md)
        return m2.x509_sign(self.x509, pkey.pkey, mda())
Esempio n. 37
0
 def as_text(self):
     # type: () -> str
     assert m2.x509_type_check(self.x509), "'x509' type error"
     buf = BIO.MemoryBuffer()
     m2.x509_print(buf.bio_ptr(), self.x509)
     return util.py3str(buf.read_all())
Esempio n. 38
0
 def _ptr(self):
     # type: () -> bytes
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return self.x509
Esempio n. 39
0
 def set_not_after(self, asn1_utctime):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_not_after(self.x509, asn1_utctime._ptr())
Esempio n. 40
0
 def get_subject(self):
     # type: () -> X509_Name
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return X509_Name(m2.x509_get_subject_name(self.x509))
Esempio n. 41
0
 def get_not_before(self):
     # type: () -> ASN1.ASN1_TIME
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return ASN1.ASN1_TIME(m2.x509_get_not_before(self.x509))
Esempio n. 42
0
 def get_version(self):
     # type: () -> int
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_get_version(self.x509)
Esempio n. 43
0
 def set_issuer_name(self, name):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_issuer_name(self.x509, name.x509_name)
Esempio n. 44
0
 def get_serial_number(self):
     # type: () -> ASN1.ASN1_Integer
     assert m2.x509_type_check(self.x509), "'x509' type error"
     asn1_integer = m2.x509_get_serial_number(self.x509)
     return m2.asn1_integer_get(asn1_integer)
Esempio n. 45
0
 def get_not_before(self):
     # type: () -> ASN1.ASN1_TIME
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return ASN1.ASN1_TIME(m2.x509_get_not_before(self.x509))
Esempio n. 46
0
 def verify(self, pkey=None):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     if pkey:
         return m2.x509_verify(self.x509, pkey.pkey)
     else:
         return m2.x509_verify(self.x509, self.get_pubkey().pkey)
Esempio n. 47
0
 def get_pubkey(self):
     # type: () -> EVP.PKey
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return EVP.PKey(m2.x509_get_pubkey(self.x509), _pyfree=1)
Esempio n. 48
0
 def get_subject(self):
     # type: () -> X509_Name
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return X509_Name(m2.x509_get_subject_name(self.x509))
Esempio n. 49
0
 def get_issuer(self):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return X509_Name(m2.x509_get_issuer_name(self.x509))
Esempio n. 50
0
 def as_der(self):
     # type: () -> bytes
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.i2d_x509(self.x509)
Esempio n. 51
0
 def _ptr(self):
     # type: () -> bytes
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return self.x509
Esempio n. 52
0
 def get_version(self):
     # type: () -> int
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_get_version(self.x509)
Esempio n. 53
0
 def set_not_after(self, asn1_utctime):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_not_after(self.x509, asn1_utctime._ptr())
Esempio n. 54
0
 def get_issuer(self):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return X509_Name(m2.x509_get_issuer_name(self.x509))
Esempio n. 55
0
 def get_serial_number(self):
     # type: () -> ASN1.ASN1_Integer
     assert m2.x509_type_check(self.x509), "'x509' type error"
     asn1_integer = m2.x509_get_serial_number(self.x509)
     return m2.asn1_integer_get(asn1_integer)
Esempio n. 56
0
 def as_der(self):
     # type: () -> bytes
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.i2d_x509(self.x509)
Esempio n. 57
0
 def get_pubkey(self):
     # type: () -> EVP.PKey
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return EVP.PKey(m2.x509_get_pubkey(self.x509), _pyfree=1)
Esempio n. 58
0
 def as_text(self):
     # type: () -> str
     assert m2.x509_type_check(self.x509), "'x509' type error"
     buf = BIO.MemoryBuffer()
     m2.x509_print(buf.bio_ptr(), self.x509)
     return six.ensure_text(buf.read_all())
Esempio n. 59
0
 def verify(self, pkey=None):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     if pkey:
         return m2.x509_verify(self.x509, pkey.pkey)
     else:
         return m2.x509_verify(self.x509, self.get_pubkey().pkey)
Esempio n. 60
0
 def set_issuer_name(self, name):
     assert m2.x509_type_check(self.x509), "'x509' type error"
     return m2.x509_set_issuer_name(self.x509, name.x509_name)