Skip to content

Commit 2ea011a

Browse files
committed
fix naked encoding detection
Signed-off-by: Dave Huseby <[email protected]>
1 parent a78080b commit 2ea011a

File tree

2 files changed

+38
-22
lines changed

2 files changed

+38
-22
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "multicid"
3-
version = "1.0.2"
3+
version = "1.0.3"
44
edition = "2021"
55
authors = ["Dave Grantham <[email protected]>"]
66
description = "Multicodec compatible content identifier implementation"
@@ -13,7 +13,7 @@ default = ["serde"]
1313
dag_cbor = ["serde_cbor", "serde_cbor/tags"]
1414

1515
[dependencies]
16-
multibase = "0.9"
16+
multibase = { version = "1.0", git = "https://github.com/cryptidtech/rust-multibase.git" }
1717
multicodec = { version = "1.0", git = "https://github.com/cryptidtech/rust-multicodec.git" }
1818
multihash = { version = "1.0", git = "https://github.com/cryptidtech/multihash.git" }
1919
multikey = { version = "1.0", git = "https://github.com/cryptidtech/multikey.git" }

src/vlad.rs

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ mod tests {
202202
use crate::cid;
203203
use multihash::mh;
204204
use multikey::EncodedMultikey;
205-
use multiutil::base_name;
205+
use multiutil::{base_name, BaseIter};
206206

207207
#[test]
208208
fn test_default() {
@@ -315,26 +315,11 @@ mod tests {
315315
.try_build()
316316
.unwrap();
317317

318-
let encodings = vec![
319-
Base::Base2,
320-
Base::Base8,
321-
Base::Base10,
322-
Base::Base16Lower,
323-
Base::Base16Upper,
324-
Base::Base32Lower,
325-
Base::Base32Upper,
326-
Base::Base32HexLower,
327-
Base::Base32HexUpper,
328-
Base::Base32Z,
329-
Base::Base36Lower,
330-
Base::Base36Upper,
331-
Base::Base58Flickr,
332-
Base::Base58Btc,
333-
Base::Base64,
334-
Base::Base64Url,
335-
];
318+
// start at Identity so we skip it
319+
let mut itr: BaseIter = Base::Identity.into();
336320

337-
for encoding in encodings {
321+
while let Some(encoding) = itr.next() {
322+
//print!("{}...", base_name(encoding));
338323
let vlad = Builder::default()
339324
.with_nonce(&nonce)
340325
.with_cid(&cid)
@@ -344,10 +329,41 @@ mod tests {
344329

345330
let s = vlad.to_string();
346331
println!("{}: ({}) {}", base_name(encoding), s.len(), s);
332+
//println!("worked!");
347333
assert_eq!(vlad, EncodedVlad::try_from(s.as_str()).unwrap());
348334
}
349335
}
350336

337+
#[test]
338+
fn test_naked_encodings() {
339+
let naked_encoded = vec![
340+
(Base::Base2, "00000111001110110010000010101101010101110101001111101110010011000000100001110101101011100000010100101011011011000100111111010001010010010001010001110100010110001100000001110101110010001001010101101101000111101001001110110100101011010011000111001010111000110100101011100010111001100000000101110001000101000100000001010111100100101101101011011001011000001000010110110110000001110110101110001110010011100110001110110101011110001100100100001101000000110011011010111100101010101101111011110100111100100100011100000100110111111000011001100001010010010101001001101010000111100110110100100011111110001001111000100001100010101101001111110110000101110010101001111110001001101110011011100011011110100011110111101010011100101000111001011111001000110010111001000001011010010110101011010010100001101011110011001010100100100000000110111110"),
341+
(Base::Base8, "01635440532535237344601035327005126661176424442435054300353442253321722355126461625615127056300134212100257113326626020555403553434471435527431103201466571253367517110701157606302445223241715510774236103053237541345237423346706750757247121627621456202645526450327462511001574"),
342+
(Base::Base10, "3159896538572941552300237467498239240230991094809220818669996208403756627333440284950116478852282558426450173929503136577705156387666971927483177444527629374454471997041770248911157995781224129392264907918430937825252959411085792202002484276887998"),
343+
(Base::Base16Lower, "073b203e9e75230920469f4f2fb703447fb6451b66eef3c7bf2f376bc05d9fd147ae60017114405792dad96085b6076b8e4e63b578c90d0336bcaadef4f24704df866149526a1e6d23f89e218ad3f6172a7e26e6e37a3dea728e5f232e41696ad286bcca9201be"),
344+
(Base::Base16Upper, "073B20BFA0561070F9B1963193361880319E93E80267D904BB19C9BBD1E64141A01351017114405792DAD96085B6076B8E4E63B578C90D0336BCAADEF4F24704DF866149526A1E6D23F89E218AD3F6172A7E26E6E37A3DEA728E5F232E41696AD286BCCA9201BE"),
345+
(Base::Base32Lower, "a45sapu6ourqsicgt5hs7nydir73mri3m3xphr57f43wxqc5t7iupltaafyriqcxslnnsyefwydwxdsomo2xrsinam3lzkw66tzeobg7qzqusutkdzwsh6e6egfnh5qxfj7cnzxdpi66u4uol4rs4qljnljinpgksia34"),
346+
(Base::Base32Upper, "A45SAPU6OURQSICGT5HS7NYDIR73MRI3M3XPHR57F43WXQC5T7IUPLTAAFYRIQCXSLNNSYEFWYDWXDSOMO2XRSINAM3LZKW66TZEOBG7QZQUSUTKDZWSH6E6EGFNH5QXFJ7CNZXDPI66U4UOL4RS4QLJNLJINPGKSIA34"),
347+
(Base::Base32HexLower, "0sti0fkuekhgi826jt7ivdo38hvrch8rcrnf7htv5srmng2tjv8kfbj005oh8g2nibddio45mo3mn3ieceqnhi8d0crbpamuujp4e16vgpgkikja3pmi7u4u465d7tgn59v2dpn3f8uukskebshisgb9db98df6ai80rs"),
348+
(Base::Base32HexUpper, "0STI0FKUEKHGI826JT7IVDO38HVRCH8RCRNF7HTV5SRMNG2TJV8KFBJ005OH8G2NIBDDIO45MO3MN3IECEQNHI8D0CRBPAMUUJP4E16VGPGKIKJA3PMI7U4U465D7TGN59V2DPN3F8UUKSKEBSHISGB9DB98DF6AI80RS"),
349+
(Base::Base32Z, "yh71yxw6qwto1engu7819padet95cte5c5zx8t79fh5szon7u9ewxmuyyfateonz1mpp1arfsadszd1qcq4zt1epyc5m3ks66u3rqbg9o3ow1wukd3s186r6rgfp87ozfj9np3zdxe66whwqmht1homjpmjepxgk1ey5h"),
350+
(Base::Base36Lower, "40lqkyrdflt5v9goe8qxj6v8om6uxyo6iybtcvwxzwmvla5jsgml8cgwg6a3xa7njoxzp468s6m0y8p6ao34ju25n0pq4ufqgta4mnzdndn1lfrfu2oznv4ahta8bsg2oqalj92no7qvtscymndyc9u2rtuacvy"),
351+
(Base::Base36Upper, "40LQR8EHJ6ME58F065O9TNCQ3T2ZWFYGCRG6L8O8A1EJI7FS8GEKPH2FMBOMIZQS37C38GAUL9H647S6AYUPCMDQFPQSEX5HDAPQGCE2FHI11GPD5KO0TSJ2H99M2RNEOC2LY0UV77A2G7HNELBDU4XWODJJZJY"),
352+
(Base::Base58Flickr, "qay7kq5wDXCsRyvdbDwvtZYGNjcuSYuTsyaCQpjkHt9subP7qmVoBLMfbhr4vDFhBDR98bZVWDQ8ZLT4zakLhCRwhzH2FRNxRtXV57X5pEaWF447Ea2NUZnsSCk5bQqz4xrkufEogbbs"),
353+
(Base::Base58Btc, "RAZ7SAQ7ePhs1oGoUSnwJgdHSY4SVaKtBHd4Z7LgYihSJ14FAGHMi331doB5Sz8pK5kdLWokERTFqJd1gYjt56z5WkxZ86FXwcd5PbqdRqfvWgyimXRThMfLfFw9H7yPLLyrUE3TyHU1"),
354+
(Base::Base64, "BzsgPp51IwkgRp9PL7cDRH+2RRtm7vPHvy83a8Bdn9FHrmABcRRAV5La2WCFtgdrjk5jtXjJDQM2vKre9PJHBN+GYUlSah5tI/ieIYrT9hcqfibm43o96nKOXyMuQWlq0oa8ypIBvg"),
355+
(Base::Base64Url, "BzsgPp51IwkgRp9PL7cDRH-2RRtm7vPHvy83a8Bdn9FHrmABcRRAV5La2WCFtgdrjk5jtXjJDQM2vKre9PJHBN-GYUlSah5tI_ieIYrT9hcqfibm43o96nKOXyMuQWlq0oa8ypIBvg"),
356+
(Base::Base256Emoji, "🌓🤷😅🌞🤩🦋😄🤘😟😏👶🌚✋👈🙂💣🌟🏆🎊💘⚡💕😚👉⚠✅😉🎵🤝🌹😬🤤⚠⚽🙊🪐✅💾😋😑🌼😗🍒😥🖕🤬🌓🙃🤞👇💃💨😣🦋🌍🛰🤦💟😰🐷👻👐🤩🌌☎💝🤤😀❣😬😘🌷🔥🥵🐶👏💫🤧🤮❤😆😠💖🍑👆💐😌🐸🥺🤞🥳🔥☺💗🌟😬🤠💝💟😷🌼🪐😖")
357+
];
358+
359+
for naked in naked_encoded {
360+
print!("{}...", base_name(naked.0));
361+
let vlad = EncodedVlad::try_from(naked.1).unwrap();
362+
assert_eq!(naked.0, vlad.encoding());
363+
println!("worked!!");
364+
}
365+
}
366+
351367
#[test]
352368
fn test_signed_vlad() {
353369
// build a cid

0 commit comments

Comments
 (0)