[#3] Added generate proto script create container method

Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
This commit is contained in:
Ilyas Niyazov 2025-03-13 14:26:01 +03:00
parent f8465e5b99
commit fba6eaaa9c
34 changed files with 547 additions and 108 deletions

View file

@ -42,3 +42,11 @@ class KeyExtension:
if len(sequence_symbols) == 0 or sequence_symbols is None:
raise ValueError(f"Empty sequence symbols of key: {sequence_symbols}")
return False
@staticmethod
def get_hex_string(value):
if value is None or len(value) == 0:
raise ValueError("Input parameter is missing")
# Convert byte array to hexadecimal string
return f"{int.from_bytes(value, byteorder='big'):0{len(value) * 2}x}"

View file

@ -1,8 +1,20 @@
import ecdsa
from hashlib import sha256, sha512
from google.protobuf.message import Message
from frostfs_sdk.client.models.ecdsa_model import ECDSA
from frostfs_sdk.protos.models.refs.types_pb2 import SignatureRFC6979, Signature
class Signer:
@staticmethod
def sign_message_rfc_6979(key: ECDSA, message: Message) -> SignatureRFC6979:
return SignatureRFC6979(
key=key.public_key,
sign=Signer.sign_rfc6979(key.private_key, message.SerializeToString())
)
@staticmethod
def sign_rfc6979(private_key: bytes, message: bytes) -> bytes:
if len(private_key) == 0 or private_key is None:
@ -14,6 +26,13 @@ class Signer:
return signature
@staticmethod
def sign_message(key: ECDSA, message: Message) -> SignatureRFC6979:
return SignatureRFC6979(
key=key.public_key,
sign=Signer.sign(key.private_key, message.SerializeToString())
)
@staticmethod
def sign(private_key: bytes, message: bytes) -> bytes:
if len(private_key) == 0 or private_key is None:
@ -26,3 +45,10 @@ class Signer:
signature_with_marker = bytes([0x04]) + signature
return signature_with_marker
@staticmethod
def _sign_message_part(key: ECDSA, data: Message) -> Signature:
return Signature(
key=key.public_key,
sign=Signature.sign(key.private_key, data.SerializeToString())
)