diff --git a/_fixtures_src/jwe-asymmetric.dag-jose b/_fixtures_src/jwe-asymmetric.dag-jose new file mode 100644 index 0000000..d2d93cf Binary files /dev/null and b/_fixtures_src/jwe-asymmetric.dag-jose differ diff --git a/_fixtures_src/jwe-symmetric.dag-jose b/_fixtures_src/jwe-symmetric.dag-jose new file mode 100644 index 0000000..b3e50bc --- /dev/null +++ b/_fixtures_src/jwe-symmetric.dag-jose @@ -0,0 +1 @@ +�bivL=%����*^�0�ctagPY��a�0�Ac�)�dHiprotectedX{"alg":"dir","enc":"A128GCM"}jciphertextX�z�[o ��j������䣃w!� \ No newline at end of file diff --git a/_fixtures_src/jws.dag-jose b/_fixtures_src/jws.dag-jose new file mode 100644 index 0000000..fb69d54 --- /dev/null +++ b/_fixtures_src/jws.dag-jose @@ -0,0 +1,2 @@ +�gpayloadX$q �UeQÒfy�R�.*VjG'@��:&�Z�'��jsignatures��iprotectedO{"alg":"EdDSA"}isignatureX@��I��\��U�`#SI74����V�iݹ�P⇾7�� +^{�9�H�fԽ[��醔疍U� \ No newline at end of file diff --git a/fixtures/jwe-asymmetric/bafyreihkt4u6euddfhofkutfzxwet7w7zm5qrjpop655yhnb5dnzqw26lm.dag-cbor b/fixtures/jwe-asymmetric/bafyreihkt4u6euddfhofkutfzxwet7w7zm5qrjpop655yhnb5dnzqw26lm.dag-cbor new file mode 100644 index 0000000..064769c --- /dev/null +++ b/fixtures/jwe-asymmetric/bafyreihkt4u6euddfhofkutfzxwet7w7zm5qrjpop655yhnb5dnzqw26lm.dag-cbor @@ -0,0 +1 @@ +�bivpQ8xpPt_zZrfvHgR-ctagvjxHjcVusu0yrOBzw-Ex5zAiprotectedx3eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0jciphertextx WTaw6WeqhaZDDhedzGYnsty4SMR-RzOwjrecipients��mencrypted_keyyVEqYaN4dFEH0vX4jU3d768hwOYSgZhElvVDzqdIKA6PFHsL4PPwJ7EIuebLrxwABJqXWBNG0kUBRjHuCv51VlxvX9WoH9ik7Qew0yROCGBj_AJef15PiZzUVUQwteHVDuSQs4OcsMfj18zc_ObskHvUMaN0PdCBA-G__7rGR2tcYSJOywbvxqqTENsCZNvasKxHSOuA_bjVsRmWloUMwLJkrbQxPAsVcwoPjAYF2agQ8D40AGFVEzGmhQDLI-OpXI-AfZYBurE7f_fU_NsYtqmFj5vZ9lvVCV1QsZa_HRhQlBBHxjTKyCBufY-0G4omt2nzYhyO-TaH44eUh81HFzww \ No newline at end of file diff --git a/fixtures/jwe-asymmetric/bagcqceraqfknq7xaemcihmq2albau32ttrutxnco7xeoik6mlejismmvw5zq.dag-jose b/fixtures/jwe-asymmetric/bagcqceraqfknq7xaemcihmq2albau32ttrutxnco7xeoik6mlejismmvw5zq.dag-jose new file mode 100644 index 0000000..d2d93cf Binary files /dev/null and b/fixtures/jwe-asymmetric/bagcqceraqfknq7xaemcihmq2albau32ttrutxnco7xeoik6mlejismmvw5zq.dag-jose differ diff --git a/fixtures/jwe-asymmetric/baguqeeraloya3qpa25kl5l4y3bzgl7rhyta2p7lwaocyxx4vpvdligb7mt2q.dag-json b/fixtures/jwe-asymmetric/baguqeeraloya3qpa25kl5l4y3bzgl7rhyta2p7lwaocyxx4vpvdligb7mt2q.dag-json new file mode 100644 index 0000000..f7b60d3 --- /dev/null +++ b/fixtures/jwe-asymmetric/baguqeeraloya3qpa25kl5l4y3bzgl7rhyta2p7lwaocyxx4vpvdligb7mt2q.dag-json @@ -0,0 +1 @@ +{"ciphertext":"WTaw6WeqhaZDDhedzGYnsty4SMR-RzOw","iv":"Q8xpPt_zZrfvHgR-","protected":"eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0","recipients":[{"encrypted_key":"EqYaN4dFEH0vX4jU3d768hwOYSgZhElvVDzqdIKA6PFHsL4PPwJ7EIuebLrxwABJqXWBNG0kUBRjHuCv51VlxvX9WoH9ik7Qew0yROCGBj_AJef15PiZzUVUQwteHVDuSQs4OcsMfj18zc_ObskHvUMaN0PdCBA-G__7rGR2tcYSJOywbvxqqTENsCZNvasKxHSOuA_bjVsRmWloUMwLJkrbQxPAsVcwoPjAYF2agQ8D40AGFVEzGmhQDLI-OpXI-AfZYBurE7f_fU_NsYtqmFj5vZ9lvVCV1QsZa_HRhQlBBHxjTKyCBufY-0G4omt2nzYhyO-TaH44eUh81HFzww"}],"tag":"jxHjcVusu0yrOBzw-Ex5zA"} \ No newline at end of file diff --git a/fixtures/jwe-symmetric/bafyreicxyzuqbx5yb7ytkgkuofwksbal3ygtswxuri25crxdxms55m5fki.dag-cbor b/fixtures/jwe-symmetric/bafyreicxyzuqbx5yb7ytkgkuofwksbal3ygtswxuri25crxdxms55m5fki.dag-cbor new file mode 100644 index 0000000..85cacbd --- /dev/null +++ b/fixtures/jwe-symmetric/bafyreicxyzuqbx5yb7ytkgkuofwksbal3ygtswxuri25crxdxms55m5fki.dag-cbor @@ -0,0 +1 @@ +�bivpPSWIuAyO8CpevzCLctagvWZAMBblhzDCsQWOAKdlkSAiprotectedx'eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4R0NNIn0jciphertextx 3XqLW28NHP-raqW8vMfIHOzko4N3IRaR \ No newline at end of file diff --git a/fixtures/jwe-symmetric/bagcqceraxazmu67crshzqdeg3kwnfschs25epy5sbtqtjre2qw3d62kzplva.dag-jose b/fixtures/jwe-symmetric/bagcqceraxazmu67crshzqdeg3kwnfschs25epy5sbtqtjre2qw3d62kzplva.dag-jose new file mode 100644 index 0000000..b3e50bc --- /dev/null +++ b/fixtures/jwe-symmetric/bagcqceraxazmu67crshzqdeg3kwnfschs25epy5sbtqtjre2qw3d62kzplva.dag-jose @@ -0,0 +1 @@ +�bivL=%����*^�0�ctagPY��a�0�Ac�)�dHiprotectedX{"alg":"dir","enc":"A128GCM"}jciphertextX�z�[o ��j������䣃w!� \ No newline at end of file diff --git a/fixtures/jwe-symmetric/baguqeeraovfm3rr3pvmxm27zgvxp5wycbfih35xih2uznminpnds5esm4jlq.dag-json b/fixtures/jwe-symmetric/baguqeeraovfm3rr3pvmxm27zgvxp5wycbfih35xih2uznminpnds5esm4jlq.dag-json new file mode 100644 index 0000000..6ae62db --- /dev/null +++ b/fixtures/jwe-symmetric/baguqeeraovfm3rr3pvmxm27zgvxp5wycbfih35xih2uznminpnds5esm4jlq.dag-json @@ -0,0 +1 @@ +{"ciphertext":"3XqLW28NHP-raqW8vMfIHOzko4N3IRaR","iv":"PSWIuAyO8CpevzCL","protected":"eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4R0NNIn0","tag":"WZAMBblhzDCsQWOAKdlkSA"} \ No newline at end of file diff --git a/fixtures/jws/bafyreihdfxoshbhowufyvjk7kq46dt6h7u6byejmlnifz34z7ocoq7ugk4.dag-cbor b/fixtures/jws/bafyreihdfxoshbhowufyvjk7kq46dt6h7u6byejmlnifz34z7ocoq7ugk4.dag-cbor new file mode 100644 index 0000000..5620731 Binary files /dev/null and b/fixtures/jws/bafyreihdfxoshbhowufyvjk7kq46dt6h7u6byejmlnifz34z7ocoq7ugk4.dag-cbor differ diff --git a/fixtures/jws/bagcqceraxvt5izt4sz7kjfrm42dxrutp6ijywgsacllkznzekmfojypkvfea.dag-jose b/fixtures/jws/bagcqceraxvt5izt4sz7kjfrm42dxrutp6ijywgsacllkznzekmfojypkvfea.dag-jose new file mode 100644 index 0000000..fb69d54 --- /dev/null +++ b/fixtures/jws/bagcqceraxvt5izt4sz7kjfrm42dxrutp6ijywgsacllkznzekmfojypkvfea.dag-jose @@ -0,0 +1,2 @@ +�gpayloadX$q �UeQÒfy�R�.*VjG'@��:&�Z�'��jsignatures��iprotectedO{"alg":"EdDSA"}isignatureX@��I��\��U�`#SI74����V�iݹ�P⇾7�� +^{�9�H�fԽ[��醔疍U� \ No newline at end of file diff --git a/fixtures/jws/baguqeeravexfd6qijjtnzxfqq6kgknnkncztgmvhjhxm6ih352qskolt2gxa.dag-json b/fixtures/jws/baguqeeravexfd6qijjtnzxfqq6kgknnkncztgmvhjhxm6ih352qskolt2gxa.dag-json new file mode 100644 index 0000000..ae4764b --- /dev/null +++ b/fixtures/jws/baguqeeravexfd6qijjtnzxfqq6kgknnkncztgmvhjhxm6ih352qskolt2gxa.dag-json @@ -0,0 +1 @@ +{"link":{"/":"bafyreiejkvsvdq4smz44yuwhfymcuvqzavveoj2at3utujwqlllspsqr6q"},"payload":"AXESIIlVZVHDkmZ5zFLHLhgqVhkFakcnQJ7pOibQWtcnyhH0","signatures":[{"protected":"eyJhbGciOiJFZERTQSJ9","signature":"-_9J5OZcl5lVuRlgI1NJEzc0FqEb6_2yVskUaQPducRQ4oe-N5ynCl57wDm4SPtm1L1bltrphpQeBOeWjVW1BQ"}]} \ No newline at end of file diff --git a/go/fixtures.go b/go/fixtures.go index bce5208..ae9f1a0 100644 --- a/go/fixtures.go +++ b/go/fixtures.go @@ -7,6 +7,7 @@ import ( "path/filepath" "strings" + _ "github.com/alexjg/go-dag-jose/dagjose" "github.com/ipfs/go-cid" _ "github.com/ipld/go-codec-dagpb" "github.com/ipld/go-ipld-prime" @@ -44,10 +45,17 @@ var dagJsonLp = cidlink.LinkPrototype{Prefix: cid.Prefix{ MhType: 0x12, // "sha2-256" MhLength: 32, }} +var dagJoseLp = cidlink.LinkPrototype{Prefix: cid.Prefix{ + Version: 1, + Codec: 0x85, // "dag-jose" + MhType: 0x12, // "sha2-256" + MhLength: 32, +}} var codecs = map[codecName]ipld.LinkPrototype{ "dag-pb": dagPbLp, "dag-cbor": dagCborLp, "dag-json": dagJsonLp, + "dag-jose": dagJoseLp, } var linkSystem = cidlink.DefaultLinkSystem() diff --git a/go/go.mod b/go/go.mod index 5cb2ef8..e0d2d59 100644 --- a/go/go.mod +++ b/go/go.mod @@ -3,6 +3,7 @@ module github.com/ipld/codec-fixtures/go go 1.16 require ( + github.com/alexjg/go-dag-jose v0.0.5 github.com/ipfs/go-cid v0.1.0 github.com/ipld/go-codec-dagpb v1.3.0 github.com/ipld/go-ipld-prime v0.12.1-0.20210819225834-a47ecf924a39 @@ -10,5 +11,4 @@ require ( github.com/multiformats/go-multihash v0.0.16 // indirect golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect ) diff --git a/go/go.sum b/go/go.sum index a06c8b9..8694f78 100644 --- a/go/go.sum +++ b/go/go.sum @@ -1,3 +1,7 @@ +github.com/alexjg/go-dag-jose v0.0.5 h1:DnzvL6uP7c7SpLZQ2xhiqpp4Kw5EnDw3ahGagDo/aDQ= +github.com/alexjg/go-dag-jose v0.0.5/go.mod h1:81dvcPwHgzIeYWjbafSI6dyBIs0/KaqjyCO8X0nZjlI= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -12,6 +16,7 @@ github.com/ipfs/go-cid v0.1.0 h1:YN33LQulcRHjfom/i25yoOZR4Telp1Hr/2RU3d0PnC0= github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o= github.com/ipld/go-codec-dagpb v1.3.0 h1:czTcaoAuNNyIYWs6Qe01DJ+sEX7B+1Z0LcXjSatMGe8= github.com/ipld/go-codec-dagpb v1.3.0/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA= +github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.11.0/go.mod h1:+WIAkokurHmZ/KwzDOMUuoeJgaRQktHtEaLglS3ZeV8= github.com/ipld/go-ipld-prime v0.12.1-0.20210819225834-a47ecf924a39 h1:FkCJIpc2lkUOHUNi8mF2x1JoM5KpS2U1p46niDdEtys= github.com/ipld/go-ipld-prime v0.12.1-0.20210819225834-a47ecf924a39/go.mod h1:hy8b93WleDMRKumOJnTIrr0MbbFbx9GD6Kzxa53Xppc= @@ -50,6 +55,9 @@ github.com/multiformats/go-multihash v0.0.16/go.mod h1:zhfEIgVnB/rPMfxgFw15ZmGoN github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e h1:ZOcivgkkFRnjfoTcGsDq3UQYiBmekwLA+qg0OjyB/ls= github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -57,6 +65,9 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/warpfork/go-testmark v0.3.0 h1:Q81c4u7hT+BR5kNfNQhEF0VT2pmL7+Kk0wD+ORYl7iA= github.com/warpfork/go-testmark v0.3.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a h1:G++j5e0OC488te356JvdhaM8YS6nMsjLAYF7JxCv07w= @@ -90,3 +101,10 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +pgregory.net/rapid v0.4.1 h1:oC9zGwnIaJvtkyj7yAFD1SX+BkQx0ghSmn85zzK/1sQ= +pgregory.net/rapid v0.4.1/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= diff --git a/js/codecs.js b/js/codecs.js index 6983252..a7ff1c3 100644 --- a/js/codecs.js +++ b/js/codecs.js @@ -1,9 +1,11 @@ import * as dagCBOR from '@ipld/dag-cbor' import * as dagJSON from '@ipld/dag-json' import * as dagPB from '@ipld/dag-pb' +import * as dagJOSE from 'dag-jose' export const codecs = { [dagCBOR.name]: { codec: dagCBOR, complete: true }, [dagJSON.name]: { codec: dagJSON, complete: true }, - [dagPB.name]: { codec: dagPB, complete: false } + [dagPB.name]: { codec: dagPB, complete: false }, + [dagJOSE.name]: { codec: dagJOSE, complete: false } } diff --git a/js/package.json b/js/package.json index c7d0834..56bf2da 100644 --- a/js/package.json +++ b/js/package.json @@ -24,6 +24,7 @@ "@ipld/dag-json": "^8.0.0", "@ipld/dag-pb": "^2.1.5", "chai": "^4.3.4", + "dag-jose": "^1.0.0", "ipld-garbage": "^4.0.3", "mocha": "^9.0.3", "multiformats": "^9.4.3"