I have forked the repo and trying to implement full catnip support.
catnip claim should support:
- ASN
- IPv4 address
- IPv6 address
- IPv4 prefix
- IPv6 prefix
Use ipaddr.js to handle IP address verification.
https://www.npmjs.com/package/ipaddr.js
use claim label 311
catnip should be array as input
[1234,"192.168.0.1","192.168.0.0/24",'2001:DB8::B','2001:DB8::A/48']
with cbor result
311: [
1234
52(h'c0a80001'),
52([24, h'c0a80000']),
54(h'20010db800000000000000000000000b'),
54([48,h'20010db800000000000000000000000a'])
],
CDDL from CTA-5007-A Final:
; Common Access Token Network IP claim
$$Claims-Set-Claims //= (catnip-label => catnip-value)
catnip-label = 311
catnip-value = [ + catnip-object ]
; Autonomous System Number (ASN), IPv6 address or IPv4 address
catnip-object = uint / ipv6-address-or-prefix / ipv4-address-or-
prefix
; IP addresses as defined in in [RFC9194] section 5
; excluding the ipv6-address-with-prefix option
ipv6-address-xor-prefix = #6.54(ipv6-address / ipv6-prefix)
ipv4-address-xor-prefix = #6.52(ipv4-address / ipv4-prefix)
ipv6-address = bytes .size 16
ipv4-address = bytes .size 4
ipv6-prefix-length = 0..128
ipv4-prefix-length = 0..32
ipv6-prefix-bytes = bytes .size (uint .le 16)
ipv4-prefix-bytes = bytes .size (uint .le 4)
ipv6-prefix = [ipv6-prefix-length, ipv6-prefix-bytes]
ipv4-prefix = [ipv4-prefix-length, ipv4-prefix-bytes]
I have forked the repo and trying to implement full catnip support.
catnip claim should support:
Use ipaddr.js to handle IP address verification.
https://www.npmjs.com/package/ipaddr.js
use claim label 311
catnip should be array as input
[1234,"192.168.0.1","192.168.0.0/24",'2001:DB8::B','2001:DB8::A/48']
with cbor result
CDDL from CTA-5007-A Final: