.Net не может шифровать секреты для отправки в API GitHub ⇐ C#
-
Anonymous
.Net не может шифровать секреты для отправки в API GitHub
Я пытаюсь использовать API секретов действий Github для развертывания секрета в нескольких репозиториях. Согласно документации, мы должны зашифровать секретный ключ с помощью библиотеки натрия, однако пример документации Github для .Net не предоставлен. Пока что я пишу следующий код для его безрезультатного шифрования (с использованием Sodium.Core):
с использованием натрия; использование системы; использование System.Text; используя System.Text.Json; общедоступное статическое шифрование строк (String PlainText, GitHubKey EncryptionKey) { // Конвертируем открытый ключ из строки Base64 в байт byte[] PublicKeyBytes = Convert.FromBase64String(EncryptionKey.Key); // Шифрование секретного значения с использованием открытого ключа byte[] EncryptedSecretBytes = PublicKeyBox.Create(Encoding.UTF8.GetBytes(PlainText), новый байт[24], Utilities.HexToBinary(EncryptionKey.KeyId.ToString()), PublicKeyBytes); return Convert.ToBase64String(EncryptedSecretBytes); } Моя основная проблема заключается в том, что PublicKeyBox.Create требует, чтобы идентификатор ключа представлял собой 32-байтовый массив, хотя на самом деле это 9-байтовый массив. Знаешь, как мне к этому относиться?
Я попробовал заполнить 32-байтовый массив с 0 в начале, но это не сработало, я смог установить секрет, но когда я попытался его использовать, я получил следующую ошибку:
Требуется ввод, но он не указан: токен
Я пытаюсь использовать API секретов действий Github для развертывания секрета в нескольких репозиториях. Согласно документации, мы должны зашифровать секретный ключ с помощью библиотеки натрия, однако пример документации Github для .Net не предоставлен. Пока что я пишу следующий код для его безрезультатного шифрования (с использованием Sodium.Core):
с использованием натрия; использование системы; использование System.Text; используя System.Text.Json; общедоступное статическое шифрование строк (String PlainText, GitHubKey EncryptionKey) { // Конвертируем открытый ключ из строки Base64 в байт byte[] PublicKeyBytes = Convert.FromBase64String(EncryptionKey.Key); // Шифрование секретного значения с использованием открытого ключа byte[] EncryptedSecretBytes = PublicKeyBox.Create(Encoding.UTF8.GetBytes(PlainText), новый байт[24], Utilities.HexToBinary(EncryptionKey.KeyId.ToString()), PublicKeyBytes); return Convert.ToBase64String(EncryptedSecretBytes); } Моя основная проблема заключается в том, что PublicKeyBox.Create требует, чтобы идентификатор ключа представлял собой 32-байтовый массив, хотя на самом деле это 9-байтовый массив. Знаешь, как мне к этому относиться?
Я попробовал заполнить 32-байтовый массив с 0 в начале, но это не сработало, я смог установить секрет, но когда я попытался его использовать, я получил следующую ошибку:
Требуется ввод, но он не указан: токен
Мобильная версия