Blob


1 package apub
3 import (
4 "crypto/rsa"
5 "crypto/x509"
6 "encoding/pem"
7 "fmt"
8 "net/http"
9 "os"
10 "strings"
11 "testing"
12 )
14 func readPrivKey(name string) (*rsa.PrivateKey, error) {
15 b, err := os.ReadFile(name)
16 if err != nil {
17 return nil, err
18 }
19 block, _ := pem.Decode(b)
20 return x509.ParsePKCS1PrivateKey(block.Bytes)
21 }
23 func TestSign(t *testing.T) {
24 req, err := http.NewRequest(http.MethodPost, "http://example.invalid", strings.NewReader("hello, world!"))
25 if err != nil {
26 t.Fatal(err)
27 }
28 key, err := readPrivKey("testdata/private.pem")
29 if err != nil {
30 t.Fatal(err)
31 }
32 if err := Sign(req, key, "http://from.invalid/actor"); err != nil {
33 t.Fatal(err)
34 }
35 fmt.Println(req.Header.Get("Digest"))
36 fmt.Println(req.Header.Get("Signature"))
37 }