Skip to content

Commit 33bc748

Browse files
committed
remove multisign verification
1 parent d163a4b commit 33bc748

1 file changed

Lines changed: 1 addition & 137 deletions

File tree

Lines changed: 1 addition & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,31 @@
11
package org.arkecosystem.crypto.signature;
22

3-
import static org.hamcrest.CoreMatchers.startsWith;
4-
import static org.hamcrest.MatcherAssert.assertThat;
5-
import static org.hamcrest.Matchers.is;
63
import static org.junit.jupiter.api.Assertions.assertTrue;
74

85
import com.google.gson.internal.LinkedTreeMap;
9-
import java.util.Arrays;
10-
import java.util.List;
11-
import org.arkecosystem.crypto.encoding.Hex;
126
import org.arkecosystem.crypto.identities.PublicKey;
137
import org.arkecosystem.crypto.transactions.Deserializer;
148
import org.arkecosystem.crypto.transactions.FixtureLoader;
15-
import org.arkecosystem.crypto.transactions.Serializer;
169
import org.arkecosystem.crypto.transactions.types.Transaction;
1710
import org.junit.jupiter.params.ParameterizedTest;
1811
import org.junit.jupiter.params.provider.ValueSource;
1912

2013
public class FixtureSignVerificationTest {
2114

22-
private final String passphrase = "my super secret passphrase";
2315
private final String secondPassphrase = "this is a top secret second passphrase";
24-
private final String musigPassphrase1 =
25-
"album pony urban cheap small blade cannon silent run reveal luxury glad predict excess fire beauty hollow reward solar egg exclude leaf sight degree";
26-
private final String musigPassphrase2 =
27-
"hen slogan retire boss upset blame rocket slender area arch broom bring elder few milk bounce execute page evoke once inmate pear marine deliver";
28-
private final String musigPassphrase3 =
29-
"top visa use bacon sun infant shrimp eye bridge fantasy chair sadness stable simple salad canoe raw hill target connect avoid promote spider category";
30-
16+
3117
@ParameterizedTest
3218
@ValueSource(
3319
strings = {
3420
"transactions/transfer/transfer-sign",
35-
"transactions/transfer/transfer-with-vendor-field-sign",
36-
// "transactions/transfer/transfer-multi-sign",
37-
3821
"transactions/vote/vote-sign",
3922
"transactions/vote/unvote-sign",
40-
// "transactions/vote/vote-multi-sign",
41-
4223
"transactions/validator_registration/validator-registration-sign",
43-
// "transactions/validator_registration/validator-registration-multi-sign",
44-
4524
"transactions/validator_resignation/validator-resignation-sign",
46-
// "transactions/validator_resignation/validator-resignation-multi-sign",
47-
4825
"transactions/multi_payment/multi-payment-sign",
4926
"transactions/multi_payment/multi-payment-with-vendor-field-sign",
50-
// "transactions/multi_payment/multi-payment-multi-sign",
51-
5227
"transactions/username_resignation/username-resignation-sign",
53-
// "transactions/username_resignation/username-resignation-multi-sign",
54-
5528
"transactions/username_registration/username-registration-sign",
56-
// "transactions/username_registration/username-registration-multi-sign",
57-
5829
"transactions/multi_signature_registration/multi-signature-registration-sign",
5930
})
6031
void checkSchnorrSignature(String file) {
@@ -67,117 +38,10 @@ void checkSchnorrSignature(String file) {
6738
if (actual.secondSignature != null) {
6839
checkSecondSignature(actual);
6940
}
70-
71-
if (actual.signatures != null) {
72-
checkMultiSignature(actual);
73-
}
74-
}
75-
76-
@ParameterizedTest
77-
@ValueSource(
78-
strings = {
79-
"transactions/transfer/transfer-sign",
80-
"transactions/transfer/transfer-with-vendor-field-sign",
81-
// "transactions/transfer/transfer-multi-sign",
82-
83-
"transactions/vote/vote-sign",
84-
"transactions/vote/unvote-sign",
85-
// "transactions/vote/vote-multi-sign",
86-
87-
"transactions/validator_registration/validator-registration-sign",
88-
// "transactions/validator_registration/validator-registration-multi-sign",
89-
90-
"transactions/validator_resignation/validator-resignation-sign",
91-
// "transactions/validator_resignation/validator-resignation-multi-sign",
92-
93-
"transactions/multi_payment/multi-payment-sign",
94-
"transactions/multi_payment/multi-payment-with-vendor-field-sign",
95-
// "transactions/multi_payment/multi-payment-multi-sign",
96-
97-
"transactions/username_resignation/username-resignation-sign",
98-
// "transactions/username_resignation/username-resignation-multi-sign",
99-
100-
"transactions/username_registration/username-registration-sign",
101-
// "transactions/username_registration/username-registration-multi-sign",
102-
103-
// "transactions/multi_signature_registration/multi-signature-registration-sign",
104-
})
105-
void checkSigningAgainProducesSameSignature(String file) {
106-
LinkedTreeMap<String, Object> fixture = FixtureLoader.load(file);
107-
108-
Transaction actual = new Deserializer(fixture.get("serialized").toString()).deserialize();
109-
110-
// Remove the signatures from original transaction
111-
Transaction withoutSignatures =
112-
new Deserializer(Hex.encode(Serializer.serialize(actual, true, true, true)))
113-
.deserialize();
114-
115-
// Ensure only the signatures were removed
116-
assertThat(
117-
fixture.get("serialized").toString(),
118-
startsWith(Hex.encode(Serializer.serialize(withoutSignatures))));
119-
120-
reSignUnsigned(actual, withoutSignatures);
121-
122-
if (withoutSignatures.signature != null) {
123-
assertTrue(withoutSignatures.verify());
124-
}
125-
126-
if (withoutSignatures.secondSignature != null) {
127-
checkSecondSignature(withoutSignatures);
128-
}
129-
130-
int signatureLength = 128;
131-
132-
if (withoutSignatures.signatures != null) {
133-
checkMultiSignature(withoutSignatures);
134-
135-
signatureLength = 128 + (withoutSignatures.signatures.size() * 130);
136-
}
137-
138-
String serializedWithoutSignatures = Hex.encode(Serializer.serialize(withoutSignatures));
139-
String serializedFixture = fixture.get("serialized").toString();
140-
141-
// Exclude the last 128 characters (signature) for final comparison
142-
assertThat(
143-
serializedWithoutSignatures.substring(
144-
0, serializedWithoutSignatures.length() - signatureLength),
145-
is(serializedFixture.substring(0, serializedFixture.length() - signatureLength)));
146-
}
147-
148-
private void reSignUnsigned(Transaction actual, Transaction withoutSignatures) {
149-
if (actual.signatures != null) {
150-
int i = 0;
151-
for (String passphrase :
152-
Arrays.asList(musigPassphrase1, musigPassphrase2, musigPassphrase3)) {
153-
withoutSignatures.multiSign(passphrase, i++);
154-
}
155-
if (actual.signature != null) {
156-
withoutSignatures.sign(musigPassphrase1);
157-
}
158-
if (actual.secondSignature != null) {
159-
withoutSignatures.secondSign(secondPassphrase);
160-
}
161-
} else if (actual.secondSignature != null) {
162-
withoutSignatures.sign(passphrase);
163-
withoutSignatures.secondSign(secondPassphrase);
164-
} else if (actual.signature != null) {
165-
withoutSignatures.sign(passphrase);
166-
}
16741
}
16842

16943
private void checkSecondSignature(Transaction actual) {
17044
String secondPublicKey = PublicKey.fromPassphrase(secondPassphrase);
17145
assertTrue(actual.secondVerify(secondPublicKey));
17246
}
173-
174-
private void checkMultiSignature(Transaction actual) {
175-
String key1 = PublicKey.fromPassphrase(musigPassphrase1);
176-
String key2 = PublicKey.fromPassphrase(musigPassphrase2);
177-
String key3 = PublicKey.fromPassphrase(musigPassphrase3);
178-
179-
List<String> publicKeys = Arrays.asList(key1, key2, key3);
180-
181-
assertTrue(actual.multiVerify(2, publicKeys));
182-
}
18347
}

0 commit comments

Comments
 (0)