DEVELOPMENT ENVIRONMENT

~liljamo/felu

ref: 80794a2467e2e6e5c48dc00e469e2dcdb3c190bd felu/internal/util/gentsigkey.go -rw-r--r-- 567 bytes
80794a24Jonni Liljamo feat: add RFC 2136 docs for lego 15 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 * Copyright (C) 2024 Jonni Liljamo <jonni@liljamo.com>
 *
 * This file is licensed under AGPL-3.0-or-later, see NOTICE and LICENSE for
 * more information.
 */

package util

import (
	"encoding/base64"
	"math/rand"
)

const charsTsigKey = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%&*()+=_-'\"\\][{}/?"

// GenTsigKey returns a base64 tsig shared secret.
func GenTsigKey() string {
	b := make([]byte, 32)
	for i := range b {
		b[i] = charsTsigKey[rand.Int63()%int64(len(charsTsigKey))]
	}
	return base64.StdEncoding.EncodeToString(b)
}