def main():
    clshsm = Signer(dllpath)
    keyid, cert = clshsm.certificate()

    def signproc(tosign, algosig):
        return clshsm.sign(keyid, tosign, algosig)

    data = open("xml.xml", "rb").read()
    cert = x509.load_der_x509_certificate(cert, backend=default_backend())
    certcontent = cert.public_bytes(serialization.Encoding.DER)

    cls = xades.BES()
    doc = cls.build(
        "dokument.xml",
        data,
        "application/xml",
        cert,
        certcontent,
        signproc,
        False,
        True,
    )
    data = etree.tostring(doc,
                          encoding="UTF-8",
                          xml_declaration=True,
                          standalone=False)

    open("xml-xades-bes-xml.xml", "wb").write(data)
예제 #2
0
def main():
    clshsm = Signer(dllpath)
    keyid, cert = clshsm.certificate()

    def signproc(tosign, algosig):
        return clshsm.sign(keyid, tosign, algosig)

    data = open("xml.xml", "rb").read()
    cert = x509.load_der_x509_certificate(cert, backend=default_backend())
    certcontent = cert.public_bytes(serialization.Encoding.DER)

    for tspurl, tspcred in ((None, None),
                            ("http://public-qlts.certum.pl/qts-17", None)):
        cls = xades.BES()
        doc = cls.enveloping(
            "dokument.xml",
            data,
            "application/xml",
            cert,
            certcontent,
            signproc,
            False,
            False,
            False,
            tspurl,
            tspcred,
        )
        data = etree.tostring(doc,
                              encoding="UTF-8",
                              xml_declaration=True,
                              standalone=False)
        if tspurl is None:
            open("xml-hsm-certum-enveloping.xml", "wb").write(data)
        else:
            open("xml-hsm-certum-enveloping-t.xml", "wb").write(data)
예제 #3
0
    def assina_xml(self, arquivo):
        def signproc(tosign, algosig):
            key = self.certificado.key
            signed_value_signature = key.sign(
                tosign, padding.PKCS1v15(),
                getattr(hashes, algosig.upper())())
            return signed_value_signature

        cert = self.certificado.cert
        certcontent = signer.cert2asn(cert).dump()

        cls = xades.BES()
        doc = cls.build('documento.xml', arquivo, 'application/xml', cert,
                        certcontent, signproc, False, True)

        return etree.tostring(doc,
                              encoding='UTF-8',
                              xml_declaration=True,
                              standalone=False)
예제 #4
0
def main():
    p12 = load_pkcs12(open('demo2_user1.p12', 'rb').read(), '1234')

    def signproc(tosign, algosig):
        key = p12.get_privatekey().to_cryptography_key()
        signed_value_signature = key.sign(tosign, padding.PKCS1v15(),
                                          getattr(hashes, algosig.upper())())
        return signed_value_signature

    data = open('xml.xml', 'rb').read()
    cert = p12.get_certificate().to_cryptography()
    certcontent = signer.cert2asn(cert).dump()

    cls = xades.BES()
    doc = cls.build('xml.xml', data, 'text/xml', cert, certcontent, signproc,
                    False, False, True)
    data = etree.tostring(doc,
                          encoding='UTF-8',
                          xml_declaration=True,
                          standalone=False)

    open('xml-xades-bes-detached.xml', 'wb').write(data)
def main():
    with open('demo2_user1.p12', 'rb') as fp:
        p12 = pkcs12.load_key_and_certificates(fp.read(), b'1234', backends.default_backend())

    def signproc(tosign, algosig):
        key = p12[0]
        signed_value_signature = key.sign(
            tosign,
            padding.PKCS1v15(),
            getattr(hashes, algosig.upper())()
        )
        return signed_value_signature

    data = open('xml.xml', 'rb').read()
    cert = p12[1]
    certcontent = signer.cert2asn(cert).dump()

    cls = xades.BES()
    doc = cls.build('xml.xml', data, 'text/xml', cert, certcontent, signproc, False, False, True)
    data = etree.tostring(doc, encoding='UTF-8', xml_declaration=True, standalone=False)

    open('xml-xades-bes-detached.xml', 'wb').write(data)