29 lines
550 B
Go
29 lines
550 B
Go
|
package vdf
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"crypto/sha256"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func Run(input []byte) ([]byte, []byte, error) {
|
||
|
h := sha256.Sum256(input)
|
||
|
// TODO: THIS IS A FAKE VDF. THE SPEC IS UNCLEAR ON WHAT TO REALLY DO HERE
|
||
|
return h[:], []byte("proof"), nil
|
||
|
}
|
||
|
|
||
|
func Verify(input []byte, out []byte, proof []byte) error {
|
||
|
// this is a fake VDF
|
||
|
h := sha256.Sum256(input)
|
||
|
|
||
|
if !bytes.Equal(h[:], out) {
|
||
|
return fmt.Errorf("vdf output incorrect")
|
||
|
}
|
||
|
|
||
|
if !bytes.Equal(proof, []byte("proof")) {
|
||
|
return fmt.Errorf("vdf proof failed to validate")
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|