Example #1
0
    def sign_stream_claim(self, claim, claim_address, cert_claim_id):
        validate_claim_id(cert_claim_id)
        if not base_decode(claim_address, 58):
            raise Exception("Invalid claim address")

        to_sign = "%s%s%s" % (base_decode(claim_address, 58),
                              claim.serialized_no_signature,
                              cert_claim_id.decode('hex'))

        digest = self.HASHFUNC(to_sign).digest()

        if not isinstance(self.private_key, ecdsa.SigningKey):
            raise Exception("Not given a signing key")
        sig_dict = {
            "version": V_0_0_1,
            "signatureType": self.CURVE_NAME,
            "signature": self.private_key.sign_digest_deterministic(digest, hashfunc=self.HASHFUNC),
            "certificateId": cert_claim_id.decode('hex')
        }

        msg = {
            "version": V_0_0_1,
            "stream": decode_b64_fields(claim.protobuf_dict)['stream'],
            "publisherSignature": sig_dict
        }

        return Claim.load(msg)
Example #2
0
    def sign_stream_claim(self, claim, claim_address, cert_claim_id):
        validate_claim_id(cert_claim_id)
        decoded_addr = decode_address(claim_address)

        to_sign = bytearray()
        to_sign.extend(decoded_addr)
        to_sign.extend(claim.serialized_no_signature)
        to_sign.extend(binascii.unhexlify(cert_claim_id))

        digest = self.HASHFUNC(to_sign).digest()

        if not isinstance(self.private_key, ecdsa.SigningKey):
            raise Exception("Not given a signing key")
        sig_dict = {
            "version":
            V_0_0_1,
            "signatureType":
            self.CURVE_NAME,
            "signature":
            self.private_key.sign_digest_deterministic(digest,
                                                       hashfunc=self.HASHFUNC),
            "certificateId":
            binascii.unhexlify(cert_claim_id)
        }

        msg = {
            "version": V_0_0_1,
            "stream": decode_b64_fields(claim.protobuf_dict)['stream'],
            "publisherSignature": sig_dict
        }

        return Claim.load(msg)
Example #3
0
 def certificate(self):
     certificate_claim = {
         VERSION: V_0_0_1,
         CLAIM_TYPE: CERTIFICATE_TYPE,
         CLAIM_TYPES[CERTIFICATE_TYPE]: Certificate.load_from_key_obj(self.public_key,
                                                                      self.CURVE_NAME)
     }
     return Claim.load(certificate_claim)
Example #4
0
    def protobuf(self):
        """Claim message object"""

        return Claim.load(self)