DEVELOPMENT ENVIRONMENT

~liljamo/felu

ref: a3ddc93bdf4330285e00d0a1fc10af5c3801f1a4 felu/internal/util/gentsigkey.go -rw-r--r-- 567 bytes
a3ddc93bJonni Liljamo feat: genTsigKey and refresh tsig key 16 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)
}