mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-24 14:50:40 +01:00
52 lines
932 B
Go
52 lines
932 B
Go
|
package macaroons
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"testing"
|
||
|
|
||
|
"gopkg.in/macaroon-bakery.v2/bakery"
|
||
|
"gopkg.in/macaroon.v2"
|
||
|
)
|
||
|
|
||
|
func FuzzUnmarshalMacaroon(f *testing.F) {
|
||
|
f.Fuzz(func(t *testing.T, data []byte) {
|
||
|
mac := &macaroon.Macaroon{}
|
||
|
_ = mac.UnmarshalBinary(data)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func FuzzAuthChecker(f *testing.F) {
|
||
|
rootKeyStore := bakery.NewMemRootKeyStore()
|
||
|
ctx := context.Background()
|
||
|
|
||
|
f.Fuzz(func(t *testing.T, location, entity, action, method string,
|
||
|
rootKey, id []byte) {
|
||
|
|
||
|
macService, err := NewService(
|
||
|
rootKeyStore, location, true, IPLockChecker,
|
||
|
)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
requiredPermissions := []bakery.Op{{
|
||
|
Entity: entity,
|
||
|
Action: action,
|
||
|
}}
|
||
|
|
||
|
mac, err := macaroon.New(rootKey, id, location, macaroon.V2)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
macBytes, err := mac.MarshalBinary()
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
_ = macService.CheckMacAuth(
|
||
|
ctx, macBytes, requiredPermissions, method,
|
||
|
)
|
||
|
})
|
||
|
}
|