diff --git a/models.py b/models.py index 1456d83..fe12e3b 100644 --- a/models.py +++ b/models.py @@ -59,43 +59,3 @@ class TestMessageResponse(BaseModel): private_key: str public_key: str event_json: str - -# class nostrKeys(BaseModel): -# pubkey: str -# privkey: str - -# class nostrNotes(BaseModel): -# id: str -# pubkey: str -# created_at: str -# kind: int -# tags: str -# content: str -# sig: str - -# class nostrCreateRelays(BaseModel): -# relay: str = Query(None) - -# class nostrCreateConnections(BaseModel): -# pubkey: str = Query(None) -# relayid: str = Query(None) - -# class nostrRelays(BaseModel): -# id: Optional[str] -# relay: Optional[str] -# status: Optional[bool] = False - - -# class nostrRelaySetList(BaseModel): -# allowlist: Optional[str] -# denylist: Optional[str] - -# class nostrConnections(BaseModel): -# id: str -# pubkey: Optional[str] -# relayid: Optional[str] - -# class nostrSubscriptions(BaseModel): -# id: str -# userPubkey: Optional[str] -# subscribedPubkey: Optional[str] diff --git a/nostr/client/cbc.py b/nostr/client/cbc.py deleted file mode 100644 index a41dbc0..0000000 --- a/nostr/client/cbc.py +++ /dev/null @@ -1,41 +0,0 @@ - -from Cryptodome import Random -from Cryptodome.Cipher import AES - -plain_text = "This is the text to encrypts" - -# encrypted = "7mH9jq3K9xNfWqIyu9gNpUz8qBvGwsrDJ+ACExdV1DvGgY8q39dkxVKeXD7LWCDrPnoD/ZFHJMRMis8v9lwHfNgJut8EVTMuJJi8oTgJevOBXl+E+bJPwej9hY3k20rgCQistNRtGHUzdWyOv7S1tg==".encode() -# iv = "GzDzqOVShWu3Pl2313FBpQ==".encode() - -key = bytes.fromhex("3aa925cb69eb613e2928f8a18279c78b1dca04541dfd064df2eda66b59880795") - -BLOCK_SIZE = 16 - -class AESCipher(object): - """This class is compatible with crypto.createCipheriv('aes-256-cbc') - - """ - def __init__(self, key=None): - self.key = key - - def pad(self, data): - length = BLOCK_SIZE - (len(data) % BLOCK_SIZE) - return data + (chr(length) * length).encode() - - def unpad(self, data): - return data[: -(data[-1] if type(data[-1]) == int else ord(data[-1]))] - - def encrypt(self, plain_text): - cipher = AES.new(self.key, AES.MODE_CBC) - b = plain_text.encode("UTF-8") - return cipher.iv, cipher.encrypt(self.pad(b)) - - def decrypt(self, iv, enc_text): - cipher = AES.new(self.key, AES.MODE_CBC, iv=iv) - return self.unpad(cipher.decrypt(enc_text).decode("UTF-8")) - -if __name__ == "__main__": - aes = AESCipher(key=key) - iv, enc_text = aes.encrypt(plain_text) - dec_text = aes.decrypt(iv, enc_text) - print(dec_text) \ No newline at end of file diff --git a/nostr/pow.py b/nostr/pow.py deleted file mode 100644 index fece484..0000000 --- a/nostr/pow.py +++ /dev/null @@ -1,56 +0,0 @@ -import time - -from .event import Event -from .key import PrivateKey - - -def zero_bits(b: int) -> int: - n = 0 - - if b == 0: - return 8 - - while b >> 1: - b = b >> 1 - n += 1 - - return 7 - n - -def count_leading_zero_bits(hex_str: str) -> int: - total = 0 - for i in range(0, len(hex_str) - 2, 2): - bits = zero_bits(int(hex_str[i:i+2], 16)) - total += bits - - if bits != 8: - break - - return total - -def mine_event(content: str, difficulty: int, public_key: str, kind: int, tags: list=[]) -> Event: - all_tags = [["nonce", "1", str(difficulty)]] - all_tags.extend(tags) - - created_at = int(time.time()) - event_id = Event.compute_id(public_key, created_at, kind, all_tags, content) - num_leading_zero_bits = count_leading_zero_bits(event_id) - - attempts = 1 - while num_leading_zero_bits < difficulty: - attempts += 1 - all_tags[0][1] = str(attempts) - created_at = int(time.time()) - event_id = Event.compute_id(public_key, created_at, kind, all_tags, content) - num_leading_zero_bits = count_leading_zero_bits(event_id) - - return Event(public_key, content, created_at, kind, all_tags, event_id) - -def mine_key(difficulty: int) -> PrivateKey: - sk = PrivateKey() - num_leading_zero_bits = count_leading_zero_bits(sk.public_key.hex()) - - while num_leading_zero_bits < difficulty: - sk = PrivateKey() - num_leading_zero_bits = count_leading_zero_bits(sk.public_key.hex()) - - return sk