summaryrefslogtreecommitdiff
path: root/bip-0327/vectors/tweak_vectors.json
blob: d0a7cfe832bfe22375af0d64cd5d0dbb350592e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
    "sk": "7FB9E0E687ADA1EEBF7ECFE2F21E73EBDB51A7D450948DFE8D76D7F2D1007671",
    "pubkeys": [
        "03935F972DA013F80AE011890FA89B67A27B7BE6CCB24D3274D18B2D4067F261A9",
        "02F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F9",
        "02DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659"
    ],
    "secnonce": "508B81A611F100A6B2B6B29656590898AF488BCF2E1F55CF22E5CFB84421FE61FA27FD49B1D50085B481285E1CA205D55C82CC1B31FF5CD54A489829355901F703935F972DA013F80AE011890FA89B67A27B7BE6CCB24D3274D18B2D4067F261A9",
    "pnonces": [
        "0337C87821AFD50A8644D820A8F3E02E499C931865C2360FB43D0A0D20DAFE07EA0287BF891D2A6DEAEBADC909352AA9405D1428C15F4B75F04DAE642A95C2548480",
        "0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F817980279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798",
        "032DE2662628C90B03F5E720284EB52FF7D71F4284F627B68A853D78C78E1FFE9303E4C5524E83FFE1493B9077CF1CA6BEB2090C93D930321071AD40B2F44E599046"
    ],
    "aggnonce": "028465FCF0BBDBCF443AABCCE533D42B4B5A10966AC09A49655E8C42DAAB8FCD61037496A3CC86926D452CAFCFD55D25972CA1675D549310DE296BFF42F72EEEA8C9",
    "tweaks": [
        "E8F791FF9225A2AF0102AFFF4A9A723D9612A682A25EBE79802B263CDFCD83BB",
        "AE2EA797CC0FE72AC5B97B97F3C6957D7E4199A167A58EB08BCAFFDA70AC0455",
        "F52ECBC565B3D8BEA2DFD5B75A4F457E54369809322E4120831626F290FA87E0",
        "1969AD73CC177FA0B4FCED6DF1F7BF9907E665FDE9BA196A74FED0A3CF5AEF9D",
        "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141"
    ],
    "msg": "F95466D086770E689964664219266FE5ED215C92AE20BAB5C9D79ADDDDF3C0CF",
    "valid_test_cases": [
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [0],
            "is_xonly": [true],
            "signer_index": 2,
            "expected": "E28A5C66E61E178C2BA19DB77B6CF9F7E2F0F56C17918CD13135E60CC848FE91",
            "comment": "A single x-only tweak"
        },
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [0],
            "is_xonly": [false],
            "signer_index": 2,
            "expected": "38B0767798252F21BF5702C48028B095428320F73A4B14DB1E25DE58543D2D2D",
            "comment": "A single plain tweak"
        },
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [0, 1],
            "is_xonly": [false, true],
            "signer_index": 2,
            "expected": "408A0A21C4A0F5DACAF9646AD6EB6FECD7F7A11F03ED1F48DFFF2185BC2C2408",
            "comment": "A plain tweak followed by an x-only tweak"
        },
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [0, 1, 2, 3],
            "is_xonly": [false, false, true, true],
            "signer_index": 2,
            "expected": "45ABD206E61E3DF2EC9E264A6FEC8292141A633C28586388235541F9ADE75435",
            "comment": "Four tweaks: plain, plain, x-only, x-only."
        },
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [0, 1, 2, 3],
            "is_xonly": [true, false, true, false],
            "signer_index": 2,
            "expected": "B255FDCAC27B40C7CE7848E2D3B7BF5EA0ED756DA81565AC804CCCA3E1D5D239",
            "comment": "Four tweaks: x-only, plain, x-only, plain. If an implementation prohibits applying plain tweaks after x-only tweaks, it can skip this test vector or return an error."
        }
    ],
    "error_test_cases": [
        {
            "key_indices": [1, 2, 0],
            "nonce_indices": [1, 2, 0],
            "tweak_indices": [4],
            "is_xonly": [false],
            "signer_index": 2,
            "error": {
                "type": "value",
                "message": "The tweak must be less than n."
            },
            "comment": "Tweak is invalid because it exceeds group size"
        }
    ]
}