]> Cypherpunks repositories - keks.git/commitdiff
Simpler encode API
authorSergey Matveev <stargrave@stargrave.org>
Wed, 11 Dec 2024 12:59:21 +0000 (15:59 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 11 Dec 2024 13:52:22 +0000 (16:52 +0300)
gyac/cmd/test-vector-anys/main.go
gyac/enc.go
gyac/yacpki/algo.go
gyac/yacpki/cer.go
gyac/yacpki/cmd/yacertool/main.go
gyac/yacpki/cmd/yacsdtool/main.go
gyac/yacpki/signed-data.go

index 1cc4e8c34d5e7fb49f07eadcb0c04e2f6335ca8086489a15e920baf3dc0cdd30..e6fb7a524ba3f09d5b48db0c6b2171a93b8c24763bf71c2767efb8e3027467cc 100644 (file)
@@ -105,5 +105,5 @@ func main() {
                },
                "uuid": uuid.MustParse("0e875e3f-d385-49eb-87b4-be42d641c367"),
        }
-       fmt.Println(hex.EncodeToString(gyac.EncodeItem(nil, gyac.ItemFromGo(data))))
+       fmt.Println(hex.EncodeToString(gyac.ItemFromGo(data).Encode(nil)))
 }
index dda40dc9eb9d6ae305d726bd0572c08f5f16daa1aa98591fddd26c121aad067d..26ccdc2fb201df39d2765f5d946bc0cce96e3f496cd905eaac39bf21baec3d16 100644 (file)
@@ -177,7 +177,7 @@ func AtomRawEncode(buf []byte, raw *Raw) []byte {
        return append(append(buf, byte(raw.T)), raw.V...)
 }
 
-func EncodeItem(buf []byte, item *Item) []byte {
+func (item *Item) Encode(buf []byte) []byte {
        switch item.Typ() {
        case ItemNIL:
                return AtomNILEncode(buf)
@@ -194,7 +194,7 @@ func EncodeItem(buf []byte, item *Item) []byte {
        case ItemList:
                buf = AtomListEncode(buf)
                for _, v := range item.V.([]*Item) {
-                       buf = EncodeItem(buf, v)
+                       buf = v.Encode(buf)
                }
                buf = AtomEOCEncode(buf)
        case ItemMap:
@@ -207,7 +207,7 @@ func EncodeItem(buf []byte, item *Item) []byte {
                buf = AtomMapEncode(buf)
                for _, k := range keys {
                        buf = AtomStrEncode(buf, k)
-                       buf = EncodeItem(buf, m[k])
+                       buf = m[k].Encode(buf)
                }
                buf = AtomEOCEncode(buf)
        case ItemBlob:
index cd7070304098e78e3d150358443a3b7868dac17100aa4ff68c169ef6267019a6..150ab0b03b5488ed9d00e3cea0041b31400268d3cc38baf28773d02b2380a6ba 100644 (file)
@@ -44,7 +44,7 @@ func (av *AV) Id() (id uuid.UUID) {
        default:
                panic("unsupported algorithm")
        }
-       utils.MustWrite(hasher, gyac.EncodeItem(nil, gyac.ItemFromGo(av)))
+       utils.MustWrite(hasher, gyac.ItemFromGo(av).Encode(nil))
        id, err := uuid.NewRandomFromReader(bytes.NewReader(hasher.Sum(nil)))
        if err != nil {
                panic(err)
index 54f5cec6ca4e4427762c971605ffa09583b16e51a08ebfeae8ec94c80d12ce76..5f22521570b6b1b6e0ece4ca1af94a117453f5e38b51adbdd1f5d50cabb4f0c2 100644 (file)
@@ -185,10 +185,7 @@ func (sd *SignedData) CerCheckSignatureFrom(parent *CerLoad) (err error) {
                return
        }
        tbs := SignedDataTBS{T: sd.Load.T, V: sd.Load.V, TBS: sig.TBS}
-       return parent.CheckSignature(
-               gyac.EncodeItem(nil, gyac.ItemFromGo(tbs)),
-               sig.Sign.V,
-       )
+       return parent.CheckSignature(gyac.ItemFromGo(tbs).Encode(nil), sig.Sign.V)
 }
 
 func (sd *SignedData) CerLoad() *CerLoad {
index 0546c7b0e99253e3af6c9fbc277c20f24dbddd8f21fbacfafa423626e59426b5..b51a0c54a8e3bf6e6b703f19b04c2297088e95135d10fbd5b944dff337d173b6 100644 (file)
@@ -143,8 +143,9 @@ func main() {
                        }
                        prv = prvEd25519
                        pubRaw = pubEd25519[:]
-                       err = os.WriteFile(*prvPath, gyac.EncodeItem(nil,
-                               gyac.ItemFromGo(yacpki.AV{A: *algo, V: prvEd25519.Seed()})), 0o600)
+                       err = os.WriteFile(*prvPath, gyac.ItemFromGo(
+                               yacpki.AV{A: *algo, V: prvEd25519.Seed()},
+                       ).Encode(nil), 0o600)
                        if err != nil {
                                log.Fatal(err)
                        }
@@ -174,8 +175,7 @@ func main() {
                        if err != nil {
                                log.Fatal(err)
                        }
-                       raw := gyac.EncodeItem(nil,
-                               gyac.ItemFromGo(yacpki.AV{A: *algo, V: prvKey.RawBE()}))
+                       raw := gyac.ItemFromGo(yacpki.AV{A: *algo, V: prvKey.RawBE()}).Encode(nil)
                        prv, err = yacpki.PrvParse(raw)
                        if err != nil {
                                log.Fatal(err)
@@ -216,7 +216,7 @@ func main() {
                log.Fatal(err)
        }
 
-       err = os.WriteFile(*cerPath, gyac.EncodeItem(nil, gyac.ItemFromGo(sd)), 0o666)
+       err = os.WriteFile(*cerPath, gyac.ItemFromGo(sd).Encode(nil), 0o666)
        if err != nil {
                log.Fatal(err)
        }
index fe5bb53a7a2993b5ea7d6d6c350a3f5a463460f4f0e580f1695b4b349cbd8e91..be8f330630121b381d83eae12d91e06498f2468e00c197e2a0e5ad9936974317 100644 (file)
@@ -98,7 +98,7 @@ func main() {
                if err != nil {
                        log.Fatal(err)
                }
-               err = os.WriteFile(*sdPath, gyac.EncodeItem(nil, gyac.ItemFromGo(sd)), 0o666)
+               err = os.WriteFile(*sdPath, gyac.ItemFromGo(sd).Encode(nil), 0o666)
                if err != nil {
                        log.Fatal(err)
                }
index 6c86e65622128c6158fa57a1bfd44c86d68cb3923c249fbe59dbc42920f83ae3..124bfebf4e2d980ea1bb4711d1c3c487f09a015923448ac43a84c3db0920d1bf 100644 (file)
@@ -136,7 +136,7 @@ func (sd *SignedData) SignWith(
        sig.Sign.A = parent.Pub[0].A
        sig.Sign.V, err = prv.Sign(
                rand.Reader,
-               gyac.EncodeItem(nil, gyac.ItemFromGo(sdTBS)),
+               gyac.ItemFromGo(sdTBS).Encode(nil),
                crypto.Hash(0),
        )
        if err != nil {