wal-g

Форк
0
57 строк · 926.0 Байт
1
package openpgp
2

3
import (
4
	"bytes"
5
	"io"
6
	"os"
7

8
	"github.com/ProtonMail/go-crypto/openpgp"
9
)
10

11
func readKey(path string) (io.Reader, error) {
12
	byteData, err := os.ReadFile(path)
13

14
	if err != nil {
15
		return nil, err
16
	}
17

18
	return bytes.NewReader(byteData), nil
19
}
20

21
func readPGPKey(path string) (openpgp.EntityList, error) {
22
	gpgKeyReader, err := readKey(path)
23

24
	if err != nil {
25
		return nil, err
26
	}
27

28
	entityList, err := openpgp.ReadArmoredKeyRing(gpgKeyReader)
29

30
	if err != nil {
31
		return nil, err
32
	}
33

34
	return entityList, nil
35
}
36

37
func decryptSecretKey(entityList openpgp.EntityList, passphrase string) error {
38
	passphraseBytes := []byte(passphrase)
39

40
	for _, entity := range entityList {
41
		err := entity.PrivateKey.Decrypt(passphraseBytes)
42

43
		if err != nil {
44
			return err
45
		}
46

47
		for _, subKey := range entity.Subkeys {
48
			err := subKey.PrivateKey.Decrypt(passphraseBytes)
49

50
			if err != nil {
51
				return err
52
			}
53
		}
54
	}
55

56
	return nil
57
}
58

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

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

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

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