reprogl

Форк
0
/
wsse.go 
35 строк · 673.0 Байт
1
package security
2

3
import (
4
	"crypto/rand"
5
	"crypto/sha1"
6
	"encoding/base64"
7
	"fmt"
8
	"time"
9

10
	"xelbot.com/reprogl/container"
11
)
12

13
func GetWSSEHeader() (string, string) {
14
	cnf := container.GetConfig()
15
	created := time.Now().Format(time.RFC3339)
16

17
	nonce := make([]byte, 12)
18
	_, err := rand.Read(nonce)
19
	if err != nil {
20
		panic(err)
21
	}
22

23
	h := sha1.New()
24
	h.Write(nonce)
25
	h.Write([]byte(created))
26
	h.Write([]byte(cnf.BackendApiWsseKey))
27

28
	return "X-WSSE", fmt.Sprintf(
29
		`UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"`,
30
		cnf.BackendApiUser,
31
		base64.StdEncoding.EncodeToString(h.Sum(nil)),
32
		base64.StdEncoding.EncodeToString(nonce),
33
		created,
34
	)
35
}
36

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.