ensure safe psbt testing

This commit is contained in:
Craig Raw 2021-04-01 09:51:43 +02:00
parent e974c3f422
commit 49654b7c82
2 changed files with 18 additions and 4 deletions

View file

@ -600,11 +600,17 @@ public class PSBT {
}
public static boolean isPSBT(String s) {
if (Utils.isHex(s) && s.startsWith(PSBT_MAGIC_HEX)) {
try {
if(Utils.isHex(s) && s.startsWith(PSBT_MAGIC_HEX)) {
return true;
} else {
return Utils.isBase64(s) && Utils.bytesToHex(Base64.decode(s)).startsWith(PSBT_MAGIC_HEX);
}
} catch(Exception e) {
//ignore
}
return false;
}
public static PSBT fromString(String strPSBT) throws PSBTParseException {

View file

@ -376,6 +376,14 @@ public class PSBTTest {
Assert.assertEquals("0200000000010258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd7500000000da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752aeffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d01000000232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f000400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00000000", Utils.bytesToHex(transaction.bitcoinSerialize()));
}
@Test
public void isPSBT() {
String s = null;
Assert.assertFalse(PSBT.isPSBT(s));
Assert.assertFalse(PSBT.isPSBT(""));
Assert.assertFalse(PSBT.isPSBT("x"));
}
@After
public void tearDown() throws Exception {
Network.set(null);