Changeset e3a844e6 in trunk


Ignore:
Timestamp:
2021-08-27T13:25:49Z (4 years ago)
Author:
Itamar Turner-Trauring <itamar@…>
Branches:
master
Children:
f99f9cf
Parents:
c88130d
Message:

Maybe fields are better off as bytes in SignedCertificate?.

Location:
src/allmydata
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/allmydata/grid_manager.py

    rc88130d re3a844e6  
    77
    88import sys
    9 import json
    109from datetime import (
    1110    datetime,
     
    1716from allmydata.util import (
    1817    base32,
     18    jsonbytes as json,
    1919)
    2020
     
    2727    A signed certificate.
    2828    """
    29     # A JSON-encoded certificate.
    30     certificate = attr.ib(type=unicode)
     29    # A JSON-encoded, UTF-8-encoded certificate.
     30    certificate = attr.ib(
     31        type=bytes, validator=attr.validators.instance_of(bytes)
     32    )
    3133    # The signature in base32.
    32     signature = attr.ib(type=unicode)
     34    signature = attr.ib(
     35        type=bytes,
     36        validator=attr.validators.instance_of(bytes)
     37    )
    3338
    3439    @classmethod
    3540    def load(cls, file_like):
    36         return cls(**json.load(file_like))
     41        data = json.load(file_like)
     42        return cls(
     43            certificate=data["certificate"].encode("ascii"),
     44            signature=data["signature"].encode("ascii")
     45        )
    3746
    3847    def asdict(self):
     
    244253            "version": 1,
    245254        }
    246         cert_data = json.dumps(cert_info, separators=(',',':'), sort_keys=True).encode('utf8')
     255        cert_data = json.dumps_bytes(cert_info, separators=(',',':'), sort_keys=True)
    247256        sig = ed25519.sign_data(self._private_key, cert_data)
    248257        certificate = SignedCertificate(
     
    372381        ed25519.verify_signature(
    373382            gm_key,
    374             base32.a2b(alleged_cert.signature.encode('ascii')),
    375             alleged_cert.certificate.encode('ascii'),
     383            base32.a2b(alleged_cert.signature),
     384            alleged_cert.certificate,
    376385        )
    377386    except ed25519.BadSignature:
  • TabularUnified src/allmydata/test/test_grid_manager.py

    rc88130d re3a844e6  
     1from past.builtins import unicode
     2
    13from datetime import (
    24    timedelta,
     
    431433        """
    432434        # make signature invalid
    433         self.cert0.signature = invalid_signature
     435        self.cert0.signature = invalid_signature.encode("ascii")
    434436
    435437        verify = create_grid_manager_verifier(
Note: See TracChangeset for help on using the changeset viewer.