package main

import (
    "encoding/hex"
    "fmt"
    "golang.org/x/crypto/sha3"
)

func main() {
    // Test with a known seed to verify Rust and Go SHAKE match
    seed, _ := hex.DecodeString("0102030405060708090a0b0c0d0e0f10")
    
    shake := sha3.NewShake128()
    shake.Write(seed)
    
    buf := make([]byte, 8)
    shake.Read(buf)
    
    fmt.Printf("Go SHAKE128 with seed: %s\n", hex.EncodeToString(seed))
    fmt.Printf("Output: %s\n", hex.EncodeToString(buf))
    fmt.Printf("Masks: [0x%04x, 0x%04x, 0x%04x, 0x%04x]\n",
        uint16(buf[0])<<8|uint16(buf[1]),
        uint16(buf[2])<<8|uint16(buf[3]),
        uint16(buf[4])<<8|uint16(buf[5]),
        uint16(buf[6])<<8|uint16(buf[7]))
}
