inline v13 atomics
This commit is contained in:
parent
c1a7ab1128
commit
455ffd6063
@ -28,3 +28,9 @@ class IPair(IAuto, Generic[E0, E1]):
|
||||
assert isinstance(v0, Mentionable)
|
||||
assert isinstance(v1, Mentionable)
|
||||
return cls.from_values(v0, v1)
|
||||
|
||||
@classmethod
|
||||
def f(cls, f0: RainbowFactory[E0], f1: RainbowFactory[E1]) -> RainbowFactory['IPair[E0, E1]']:
|
||||
assert isinstance(f0, RainbowFactory)
|
||||
assert isinstance(f1, RainbowFactory)
|
||||
return cls.factory(f0, f1)
|
||||
|
@ -2,8 +2,8 @@ import nacl.bindings
|
||||
import nacl.exceptions
|
||||
import nacl.signing
|
||||
|
||||
from rainbowadn.atomic import *
|
||||
from rainbowadn.core import *
|
||||
from rainbowadn.inlining import *
|
||||
from .subject import *
|
||||
|
||||
__all__ = ('BadSignature', 'Signature',)
|
||||
@ -13,12 +13,16 @@ class BadSignature(nacl.exceptions.BadSignatureError):
|
||||
pass
|
||||
|
||||
|
||||
class Signature(Atomic):
|
||||
class Signature(IAtomic):
|
||||
def __init__(self, source: bytes):
|
||||
assert isinstance(source, bytes)
|
||||
assert_eq(len(source), nacl.bindings.crypto_sign_BYTES)
|
||||
self.source = source
|
||||
|
||||
@classmethod
|
||||
def size(cls) -> int:
|
||||
return nacl.bindings.crypto_sign_BYTES
|
||||
|
||||
@classmethod
|
||||
def empty(cls) -> 'Signature':
|
||||
return Signature(bytes(nacl.bindings.crypto_sign_BYTES))
|
||||
|
@ -1,18 +1,23 @@
|
||||
import nacl.bindings
|
||||
from nacl.public import PublicKey
|
||||
from nacl.signing import VerifyKey
|
||||
|
||||
from rainbowadn.atomic import *
|
||||
from rainbowadn.inlining import *
|
||||
|
||||
__all__ = ('Subject',)
|
||||
|
||||
|
||||
class Subject(Atomic):
|
||||
class Subject(IAtomic):
|
||||
def __init__(self, verify_key: VerifyKey):
|
||||
assert isinstance(verify_key, VerifyKey)
|
||||
self.verify_key: VerifyKey = verify_key
|
||||
self.public_key: PublicKey = verify_key.to_curve25519_public_key()
|
||||
assert isinstance(self.public_key, PublicKey)
|
||||
|
||||
@classmethod
|
||||
def size(cls) -> int:
|
||||
return nacl.bindings.crypto_sign_PUBLICKEYBYTES
|
||||
|
||||
@classmethod
|
||||
def _from_bytes(cls, source: bytes) -> 'Subject':
|
||||
assert isinstance(source, bytes)
|
||||
|
Loading…
Reference in New Issue
Block a user