| { | |||||
| "Version": 1, | |||||
| "WorkspaceRootPath": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\", | |||||
| "Documents": [ | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\managers\\safeorbitpgpcryptomanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\managers\\safeorbitpgpcryptomanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| }, | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\data\\protecteddata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\data\\protecteddata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| }, | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| } | |||||
| ], | |||||
| "DocumentGroupContainers": [ | |||||
| { | |||||
| "Orientation": 0, | |||||
| "VerticalTabListWidth": 256, | |||||
| "DocumentGroups": [ | |||||
| { | |||||
| "DockedWidth": 200, | |||||
| "SelectedChildIndex": 2, | |||||
| "Children": [ | |||||
| { | |||||
| "$type": "Bookmark", | |||||
| "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 1, | |||||
| "Title": "ProtectedData.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Data\\ProtectedData.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Data\\ProtectedData.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Data\\ProtectedData.cs", | |||||
| "RelativeToolTip": "SecureData\\Data\\ProtectedData.cs", | |||||
| "ViewState": "AgIAAAAAAAAAAAAAAAAuwA0AAAAsAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T23:41:29.675Z", | |||||
| "EditorCaption": "" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 0, | |||||
| "Title": "SafeOrbitPGPCryptoManager.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "RelativeToolTip": "SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "ViewState": "AgIAAKQAAAAAAAAAAAAUwM0AAABtAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T22:19:21.625Z", | |||||
| "EditorCaption": "" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 2, | |||||
| "Title": "Program.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Program.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Program.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Program.cs", | |||||
| "RelativeToolTip": "SecureData\\Program.cs", | |||||
| "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAoAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T22:15:07.853Z", | |||||
| "EditorCaption": "" | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } |
| { | |||||
| "Version": 1, | |||||
| "WorkspaceRootPath": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\", | |||||
| "Documents": [ | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\managers\\safeorbitpgpcryptomanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\managers\\safeorbitpgpcryptomanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| }, | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\data\\protecteddata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\data\\protecteddata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| }, | |||||
| { | |||||
| "AbsoluteMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|c:\\users\\christophe_brachet\\desktop\\code\\securedata\\securedata\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", | |||||
| "RelativeMoniker": "D:0:0:{2D774D30-4507-4135-A8C1-2E60C43FDB02}|SecureData\\SecureData.csproj|solutionrelative:securedata\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" | |||||
| } | |||||
| ], | |||||
| "DocumentGroupContainers": [ | |||||
| { | |||||
| "Orientation": 0, | |||||
| "VerticalTabListWidth": 256, | |||||
| "DocumentGroups": [ | |||||
| { | |||||
| "DockedWidth": 200, | |||||
| "SelectedChildIndex": 2, | |||||
| "Children": [ | |||||
| { | |||||
| "$type": "Bookmark", | |||||
| "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 1, | |||||
| "Title": "ProtectedData.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Data\\ProtectedData.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Data\\ProtectedData.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Data\\ProtectedData.cs", | |||||
| "RelativeToolTip": "SecureData\\Data\\ProtectedData.cs", | |||||
| "ViewState": "AgIAAAAAAAAAAAAAAAAuwA0AAAAsAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T23:41:29.675Z", | |||||
| "EditorCaption": "" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 0, | |||||
| "Title": "SafeOrbitPGPCryptoManager.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "RelativeToolTip": "SecureData\\Managers\\SafeOrbitPGPCryptoManager.cs", | |||||
| "ViewState": "AgIAAJcAAAAAAAAAAAAqwMoAAAAaAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T22:19:21.625Z", | |||||
| "EditorCaption": "" | |||||
| }, | |||||
| { | |||||
| "$type": "Document", | |||||
| "DocumentIndex": 2, | |||||
| "Title": "Program.cs", | |||||
| "DocumentMoniker": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Program.cs", | |||||
| "RelativeDocumentMoniker": "SecureData\\Program.cs", | |||||
| "ToolTip": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\Program.cs", | |||||
| "RelativeToolTip": "SecureData\\Program.cs", | |||||
| "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAoAAAAAAAAAA==", | |||||
| "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", | |||||
| "WhenOpened": "2025-06-02T22:15:07.853Z", | |||||
| "EditorCaption": "" | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } |
| | |||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
| # Visual Studio Version 17 | |||||
| VisualStudioVersion = 17.12.35506.116 d17.12 | |||||
| MinimumVisualStudioVersion = 10.0.40219.1 | |||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecureData", "SecureData\SecureData.csproj", "{2D774D30-4507-4135-A8C1-2E60C43FDB02}" | |||||
| EndProject | |||||
| Global | |||||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||||
| Debug|Any CPU = Debug|Any CPU | |||||
| Release|Any CPU = Release|Any CPU | |||||
| EndGlobalSection | |||||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||||
| {2D774D30-4507-4135-A8C1-2E60C43FDB02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
| {2D774D30-4507-4135-A8C1-2E60C43FDB02}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
| {2D774D30-4507-4135-A8C1-2E60C43FDB02}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
| {2D774D30-4507-4135-A8C1-2E60C43FDB02}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
| EndGlobalSection | |||||
| GlobalSection(SolutionProperties) = preSolution | |||||
| HideSolutionNode = FALSE | |||||
| EndGlobalSection | |||||
| EndGlobal |
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| using System.Threading.Tasks; | |||||
| using SafeOrbit.Memory; | |||||
| namespace SecureData.Data | |||||
| { | |||||
| public class ProtectedData | |||||
| { | |||||
| public string Password { get; set; } | |||||
| public string Passphrase { get; set; } | |||||
| } | |||||
| } |
| | |||||
| using System; | |||||
| using System.IO; | |||||
| using Org.BouncyCastle.Bcpg; | |||||
| using Org.BouncyCastle.Bcpg.OpenPgp; | |||||
| using Org.BouncyCastle.Crypto.Generators; | |||||
| using Org.BouncyCastle.Crypto; | |||||
| using Org.BouncyCastle.Security; | |||||
| using SafeOrbit.Memory; | |||||
| using Org.BouncyCastle.Bcpg.Sig; | |||||
| using Org.BouncyCastle.Asn1.Ocsp; | |||||
| using System.Security.Cryptography; | |||||
| using ProtectedData = SecureData.Data.ProtectedData; | |||||
| using System.Runtime.Serialization; | |||||
| using System.Text; | |||||
| using static System.Runtime.InteropServices.JavaScript.JSType; | |||||
| using System.Security.Cryptography.X509Certificates; | |||||
| namespace SecureData.Managers | |||||
| { | |||||
| public class SafeOrbitPGPCryptoManager | |||||
| { | |||||
| public string PublicKeyFile { get; private set; } | |||||
| public string PrivateKeyFile { get; private set; } | |||||
| public SafeOrbitPGPCryptoManager(string publicKeyPath, string privateKeyPath) | |||||
| { | |||||
| PublicKeyFile = publicKeyPath; | |||||
| PrivateKeyFile = privateKeyPath; | |||||
| } | |||||
| public void GenerateKeys(string identity, string passphrase) | |||||
| { | |||||
| PgpKeyRingGenerator keyRingGenerator = CreatePGPKeyRingGenerator(identity, passphrase); | |||||
| using (Stream pubOut = File.Create(PublicKeyFile)) | |||||
| using (Stream privOut = File.Create(PrivateKeyFile)) | |||||
| { | |||||
| keyRingGenerator.GeneratePublicKeyRing().Encode(pubOut); | |||||
| keyRingGenerator.GenerateSecretKeyRing().Encode(privOut); | |||||
| } | |||||
| Console.WriteLine("✅ Clés PGP générées avec succès !"); | |||||
| } | |||||
| public void EncryptPassword(SafeObject<ProtectedData> safeData, string encryptedFile) | |||||
| { | |||||
| using (Stream keyIn = File.OpenRead(PublicKeyFile)) | |||||
| using (Stream outputStream = File.Create(encryptedFile)) | |||||
| using (Stream inputStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(safeData.Object.Password))) | |||||
| { | |||||
| PgpPublicKey pubKey = ReadPublicKey(keyIn); | |||||
| PgpEncryptedDataGenerator encryptor = new PgpEncryptedDataGenerator(SymmetricKeyAlgorithmTag.Aes256); | |||||
| encryptor.AddMethod(pubKey); | |||||
| using (Stream encryptedOut = encryptor.Open(outputStream, new byte[1 << 16])) | |||||
| { | |||||
| inputStream.CopyTo(encryptedOut); | |||||
| } | |||||
| } | |||||
| Console.WriteLine("🔐 Mot de passe chiffré avec succès !"); | |||||
| } | |||||
| public string? DecryptPassword(string encryptedFile, string passphrase) | |||||
| { | |||||
| using (Stream keyIn = File.OpenRead(PrivateKeyFile)) | |||||
| using (Stream encryptedStream = File.OpenRead(encryptedFile)) | |||||
| { | |||||
| PgpSecretKeyRingBundle secretKeyRingBundle = new PgpSecretKeyRingBundle(PgpUtilities.GetDecoderStream(keyIn)); | |||||
| PgpObjectFactory pgpF = new PgpObjectFactory(PgpUtilities.GetDecoderStream(encryptedStream)); | |||||
| PgpEncryptedDataList? encDataList = pgpF.NextPgpObject() as PgpEncryptedDataList; | |||||
| PgpPrivateKey privateKey = FindPrivateKey(secretKeyRingBundle, passphrase); | |||||
| if (encDataList?.Count == 1) | |||||
| { | |||||
| using (Stream decryptedStream = ((PgpPublicKeyEncryptedData)encDataList[0]).GetDataStream(privateKey)) | |||||
| using (StreamReader reader = new StreamReader(decryptedStream)) | |||||
| { | |||||
| return reader.ReadToEnd(); | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | |||||
| public void SignData(SafeObject<ProtectedData> safeData, string signedFile, string password) | |||||
| { | |||||
| using (Stream keyIn = File.OpenRead(PrivateKeyFile)) | |||||
| using (Stream inputStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(safeData.Object.Passphrase))) | |||||
| using (Stream outputStream = File.Create(signedFile)) | |||||
| using (MemoryStream signedOut = new MemoryStream()) | |||||
| { | |||||
| PgpSecretKeyRingBundle secretKeyRingBundle = new PgpSecretKeyRingBundle(PgpUtilities.GetDecoderStream(keyIn)); | |||||
| PgpPrivateKey privateKey = FindPrivateKey(secretKeyRingBundle, password); | |||||
| PgpSignatureGenerator sGen = new PgpSignatureGenerator(privateKey.PublicKeyPacket.Algorithm, HashAlgorithmTag.Sha256); | |||||
| sGen.InitSign(PgpSignature.BinaryDocument, privateKey); | |||||
| Console.WriteLine("🔍 Initializing signature..."); | |||||
| sGen.GenerateOnePassVersion(false).Encode(signedOut); | |||||
| inputStream.CopyTo(signedOut); | |||||
| sGen.Generate().Encode(signedOut); | |||||
| Console.WriteLine("🔍 Copying to output file..."); | |||||
| signedOut.Flush(); | |||||
| signedOut.Position = 0; | |||||
| signedOut.CopyTo(outputStream); | |||||
| outputStream.Flush(); | |||||
| } | |||||
| Console.WriteLine("✅ Données signées avec succès !"); | |||||
| } | |||||
| private PgpKeyRingGenerator CreatePGPKeyRingGenerator(string identity, string passphrase) | |||||
| { | |||||
| int certificationLevel = PgpSignature.PositiveCertification; | |||||
| PgpKeyPair masterKeyPair = GeneratePGPKeyPair(PublicKeyAlgorithmTag.RsaGeneral, 2048); | |||||
| PgpKeyPair subKeyPair = GeneratePGPKeyPair(PublicKeyAlgorithmTag.RsaGeneral, 2048); | |||||
| // ✅ Creating the hashed signature packets | |||||
| PgpSignatureSubpacketGenerator hashedSubpacketGenerator = new PgpSignatureSubpacketGenerator(); | |||||
| hashedSubpacketGenerator.SetKeyFlags(true, KeyFlags.SignData | KeyFlags.EncryptStorage); | |||||
| hashedSubpacketGenerator.SetPreferredHashAlgorithms(true, new int[] { (int)HashAlgorithmTag.Sha256, (int)HashAlgorithmTag.Sha512 }); | |||||
| PgpSignatureSubpacketVector hashedPackets = hashedSubpacketGenerator.Generate(); | |||||
| // ✅ Creating the unhashed signature packets (optional metadata) | |||||
| PgpSignatureSubpacketGenerator unhashedSubpacketGenerator = new PgpSignatureSubpacketGenerator(); | |||||
| PgpSignatureSubpacketVector unhashedPackets = unhashedSubpacketGenerator.Generate(); | |||||
| SecureRandom rand = new SecureRandom(); | |||||
| return new PgpKeyRingGenerator( | |||||
| certificationLevel, | |||||
| masterKeyPair, | |||||
| identity, | |||||
| SymmetricKeyAlgorithmTag.Aes256, | |||||
| passphrase.ToCharArray(), | |||||
| true, // useSha1 | |||||
| hashedPackets, | |||||
| unhashedPackets, | |||||
| rand | |||||
| ); | |||||
| } | |||||
| private PgpKeyPair GeneratePGPKeyPair(PublicKeyAlgorithmTag algorithm, int keySize) | |||||
| { | |||||
| RsaKeyPairGenerator keyGen = new RsaKeyPairGenerator(); | |||||
| keyGen.Init(new KeyGenerationParameters(new SecureRandom(), keySize)); | |||||
| AsymmetricCipherKeyPair keyPair = keyGen.GenerateKeyPair(); | |||||
| return new PgpKeyPair(algorithm, keyPair.Public, keyPair.Private, DateTime.UtcNow); | |||||
| } | |||||
| private PgpPublicKey ReadPublicKey(Stream inputStream) | |||||
| { | |||||
| PgpPublicKeyRingBundle keyRingBundle = new PgpPublicKeyRingBundle(PgpUtilities.GetDecoderStream(inputStream)); | |||||
| foreach (PgpPublicKeyRing keyRing in keyRingBundle.GetKeyRings()) | |||||
| { | |||||
| foreach (PgpPublicKey key in keyRing.GetPublicKeys()) | |||||
| { | |||||
| if (key.IsEncryptionKey) | |||||
| return key; | |||||
| } | |||||
| } | |||||
| throw new ArgumentException("Clé publique non trouvée."); | |||||
| } | |||||
| private PgpSignature LoadPGPSignature(PgpPublicKey publicKey,string signatureFilePath) | |||||
| { | |||||
| using (Stream keyIn = File.OpenRead(signatureFilePath)) | |||||
| { | |||||
| PgpObjectFactory factory = new PgpObjectFactory(PgpUtilities.GetDecoderStream(keyIn)); | |||||
| object obj =factory.NextPgpObject(); | |||||
| return null; | |||||
| } | |||||
| } | |||||
| public bool VerifySignature(string signatureFilePath, SafeObject<ProtectedData> safeData) | |||||
| { | |||||
| byte[] data = System.Text.Encoding.UTF8.GetBytes(safeData.Object.Passphrase); | |||||
| using (Stream keyIn = File.OpenRead(PublicKeyFile)) | |||||
| { | |||||
| PgpPublicKey publicKey= ReadPublicKey(keyIn); | |||||
| PgpSignature signature = LoadPGPSignature(publicKey,signatureFilePath); | |||||
| signature.InitVerify(publicKey); | |||||
| using (Stream dataStream = new MemoryStream(data)) | |||||
| { | |||||
| int ch; | |||||
| while ((ch = dataStream.ReadByte()) >= 0) | |||||
| { | |||||
| signature.Update((byte)ch); | |||||
| } | |||||
| } | |||||
| return signature.Verify(); | |||||
| } | |||||
| return false; | |||||
| } | |||||
| private PgpPrivateKey FindPrivateKey(PgpSecretKeyRingBundle secretKeyRingBundle, string passphrase) | |||||
| { | |||||
| foreach (PgpSecretKeyRing keyRing in secretKeyRingBundle.GetKeyRings()) | |||||
| { | |||||
| foreach (PgpSecretKey key in keyRing.GetSecretKeys()) | |||||
| { | |||||
| PgpPrivateKey privateKey = key.ExtractPrivateKey(passphrase.ToCharArray()); | |||||
| if (privateKey != null) | |||||
| return privateKey; | |||||
| } | |||||
| } | |||||
| throw new ArgumentException("Clé privée non trouvée."); | |||||
| } | |||||
| } | |||||
| } |
| using System; | |||||
| using System.Security.Cryptography; | |||||
| using SafeOrbit.Memory; | |||||
| using SecureData.Data; | |||||
| using SecureData.Managers; | |||||
| using ProtectedData = SecureData.Data.ProtectedData; | |||||
| namespace SecureData | |||||
| { | |||||
| class Program | |||||
| { | |||||
| static async Task Main() | |||||
| { | |||||
| string signedFile = "signed.pgp"; | |||||
| SafeOrbitPGPCryptoManager pgp = new SafeOrbitPGPCryptoManager("publicKey.asc", "privateKey.asc"); | |||||
| pgp.GenerateKeys("user@example.com", "MonMotDePasseUltraSecret"); | |||||
| using (SafeObject<ProtectedData> safeObject = new SafeObject<ProtectedData>()) | |||||
| { | |||||
| safeObject.ApplyChanges((data) => data.Password = "MonMotDePasseChiffré"); | |||||
| safeObject.ApplyChanges((data) => data.Passphrase = "4UGy8Xps982H7JpXjmVM"); | |||||
| pgp.SignData(safeObject,signedFile, "MonMotDePasseUltraSecret"); | |||||
| // You can alternatively use an existing instance to protect: new SafeObject(new InitialSafeObjectSettings(initialValue, true)); | |||||
| // Each change to the object's state or code must be using ApplyChanges | |||||
| if (pgp.VerifySignature(signedFile,safeObject)) | |||||
| { | |||||
| string encryptedFile = "password.pgp"; | |||||
| pgp.EncryptPassword(safeObject, encryptedFile); | |||||
| string? decryptedPassword = pgp.DecryptPassword(encryptedFile, "MonMotDePasseUltraSecret"); | |||||
| } | |||||
| } | |||||
| /* string safePassword = "MonMotDePasseSuperSecret"; | |||||
| pgp.EncryptPassword(safePassword, encryptedFile); | |||||
| string? decryptedPassword = pgp.DecryptPassword(encryptedFile, "MonMotDePasseUltraSecret"); | |||||
| Console.WriteLine($"✅ Mot de passe déchiffré : {decryptedPassword}"); | |||||
| using (var safeMessage = new SafeString()) | |||||
| { | |||||
| safePassword.AppendAsync("Message Important à Signer").GetAwaiter().GetResult(); | |||||
| pgp.SignData(safeMessage, "signedMessage.pgp", "MonMotDePasseUltraSecret"); | |||||
| } | |||||
| }*/ | |||||
| } | |||||
| } | |||||
| } |
| <Project Sdk="Microsoft.NET.Sdk"> | |||||
| <PropertyGroup> | |||||
| <OutputType>Exe</OutputType> | |||||
| <TargetFramework>net8.0</TargetFramework> | |||||
| <ImplicitUsings>enable</ImplicitUsings> | |||||
| <Nullable>enable</Nullable> | |||||
| </PropertyGroup> | |||||
| <ItemGroup> | |||||
| <PackageReference Include="BouncyCastle.Cryptography" Version="2.6.1" /> | |||||
| <PackageReference Include="SafeOrbit" Version="0.3.1" /> | |||||
| </ItemGroup> | |||||
| </Project> |
| // <autogenerated /> | |||||
| using System; | |||||
| using System.Reflection; | |||||
| [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] |
| //------------------------------------------------------------------------------ | |||||
| // <auto-generated> | |||||
| // Ce code a été généré par un outil. | |||||
| // Version du runtime :4.0.30319.42000 | |||||
| // | |||||
| // Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si | |||||
| // le code est régénéré. | |||||
| // </auto-generated> | |||||
| //------------------------------------------------------------------------------ | |||||
| using System; | |||||
| using System.Reflection; | |||||
| [assembly: System.Reflection.AssemblyCompanyAttribute("SecureData")] | |||||
| [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||||
| [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] | |||||
| [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] | |||||
| [assembly: System.Reflection.AssemblyProductAttribute("SecureData")] | |||||
| [assembly: System.Reflection.AssemblyTitleAttribute("SecureData")] | |||||
| [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] | |||||
| // Généré par la classe MSBuild WriteCodeFragment. | |||||
| a2bc125f6230c65ee2d34f8d5a9c02a956dd60c951e56adf81c4e11bed7f88e9 |
| is_global = true | |||||
| build_property.TargetFramework = net8.0 | |||||
| build_property.TargetPlatformMinVersion = | |||||
| build_property.UsingMicrosoftNETSdkWeb = | |||||
| build_property.ProjectTypeGuids = | |||||
| build_property.InvariantGlobalization = | |||||
| build_property.PlatformNeutralAssembly = | |||||
| build_property.EnforceExtendedAnalyzerRules = | |||||
| build_property._SupportedPlatformList = Linux,macOS,Windows | |||||
| build_property.RootNamespace = SecureData | |||||
| build_property.ProjectDir = C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\ | |||||
| build_property.EnableComHosting = | |||||
| build_property.EnableGeneratedComInterfaceComImportInterop = | |||||
| build_property.EffectiveAnalysisLevelStyle = 8.0 | |||||
| build_property.EnableCodeStyleSeverity = |
| // <auto-generated/> | |||||
| global using global::System; | |||||
| global using global::System.Collections.Generic; | |||||
| global using global::System.IO; | |||||
| global using global::System.Linq; | |||||
| global using global::System.Net.Http; | |||||
| global using global::System.Threading; | |||||
| global using global::System.Threading.Tasks; |
| bfb0d2eaf623f257f2d8763c7d702b6086cf32acbbe82b1dcc4de7cdcb997b4a |
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.csproj.AssemblyReference.cache | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.GeneratedMSBuildEditorConfig.editorconfig | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.AssemblyInfoInputs.cache | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.AssemblyInfo.cs | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.csproj.CoreCompileInputs.cache | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SecureData.exe | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SecureData.deps.json | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SecureData.runtimeconfig.json | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SecureData.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SecureData.pdb | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\BouncyCastle.Cryptography.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\Microsoft.Win32.SystemEvents.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\SafeOrbit.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\System.Drawing.Common.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\System.Security.Cryptography.ProtectedData.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\System.Security.Permissions.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\System.Windows.Extensions.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\bin\Debug\net8.0\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.csproj.Up2Date | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\refint\SecureData.dll | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.pdb | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\SecureData.genruntimeconfig.cache | |||||
| C:\Users\christophe_brachet\Desktop\Code\SecureData\SecureData\obj\Debug\net8.0\ref\SecureData.dll |
| c6946be347bc8af8cb4c1c175314b6a51599f7992a787b82fd8a7ef0655af4fb |
| { | |||||
| "format": 1, | |||||
| "restore": { | |||||
| "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\SecureData.csproj": {} | |||||
| }, | |||||
| "projects": { | |||||
| "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\SecureData.csproj": { | |||||
| "version": "1.0.0", | |||||
| "restore": { | |||||
| "projectUniqueName": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\SecureData.csproj", | |||||
| "projectName": "SecureData", | |||||
| "projectPath": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\SecureData.csproj", | |||||
| "packagesPath": "C:\\Users\\christophe_brachet\\.nuget\\packages\\", | |||||
| "outputPath": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\obj\\", | |||||
| "projectStyle": "PackageReference", | |||||
| "fallbackFolders": [ | |||||
| "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" | |||||
| ], | |||||
| "configFilePaths": [ | |||||
| "C:\\Users\\christophe_brachet\\AppData\\Roaming\\NuGet\\NuGet.Config", | |||||
| "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", | |||||
| "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" | |||||
| ], | |||||
| "originalTargetFrameworks": [ | |||||
| "net8.0" | |||||
| ], | |||||
| "sources": { | |||||
| "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, | |||||
| "C:\\Program Files\\dotnet\\library-packs": {}, | |||||
| "https://api.nuget.org/v3/index.json": {} | |||||
| }, | |||||
| "frameworks": { | |||||
| "net8.0": { | |||||
| "targetAlias": "net8.0", | |||||
| "projectReferences": {} | |||||
| } | |||||
| }, | |||||
| "warningProperties": { | |||||
| "warnAsError": [ | |||||
| "NU1605" | |||||
| ] | |||||
| }, | |||||
| "restoreAuditProperties": { | |||||
| "enableAudit": "true", | |||||
| "auditLevel": "low", | |||||
| "auditMode": "all" | |||||
| }, | |||||
| "SdkAnalysisLevel": "9.0.100" | |||||
| }, | |||||
| "frameworks": { | |||||
| "net8.0": { | |||||
| "targetAlias": "net8.0", | |||||
| "dependencies": { | |||||
| "BouncyCastle.Cryptography": { | |||||
| "target": "Package", | |||||
| "version": "[2.6.1, )" | |||||
| }, | |||||
| "SafeOrbit": { | |||||
| "target": "Package", | |||||
| "version": "[0.3.1, )" | |||||
| } | |||||
| }, | |||||
| "imports": [ | |||||
| "net461", | |||||
| "net462", | |||||
| "net47", | |||||
| "net471", | |||||
| "net472", | |||||
| "net48", | |||||
| "net481" | |||||
| ], | |||||
| "assetTargetFallback": true, | |||||
| "warn": true, | |||||
| "frameworkReferences": { | |||||
| "Microsoft.NETCore.App": { | |||||
| "privateAssets": "all" | |||||
| } | |||||
| }, | |||||
| "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json" | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } |
| <?xml version="1.0" encoding="utf-8" standalone="no"?> | |||||
| <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||||
| <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> | |||||
| <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> | |||||
| <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> | |||||
| <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> | |||||
| <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> | |||||
| <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\christophe_brachet\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders> | |||||
| <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> | |||||
| <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.1</NuGetToolVersion> | |||||
| </PropertyGroup> | |||||
| <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> | |||||
| <SourceRoot Include="C:\Users\christophe_brachet\.nuget\packages\" /> | |||||
| <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" /> | |||||
| </ItemGroup> | |||||
| </Project> |
| <?xml version="1.0" encoding="utf-8" standalone="no"?> | |||||
| <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> |
| { | |||||
| "version": 2, | |||||
| "dgSpecHash": "PJjmy8BAJB4=", | |||||
| "success": true, | |||||
| "projectFilePath": "C:\\Users\\christophe_brachet\\Desktop\\Code\\SecureData\\SecureData\\SecureData.csproj", | |||||
| "expectedPackageFiles": [ | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\bouncycastle.cryptography\\2.6.1\\bouncycastle.cryptography.2.6.1.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\microsoft.netcore.platforms\\3.1.0\\microsoft.netcore.platforms.3.1.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\microsoft.win32.systemevents\\4.7.0\\microsoft.win32.systemevents.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.1\\runtime.native.system.security.cryptography.apple.4.3.1.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.1\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.1.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\safeorbit\\0.3.1\\safeorbit.0.3.1.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.componentmodel\\4.3.0\\system.componentmodel.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.drawing.common\\4.7.0\\system.drawing.common.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.reflection.metadata\\1.8.0\\system.reflection.metadata.1.8.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.reflection.typeextensions\\4.7.0\\system.reflection.typeextensions.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.runtime.serialization.primitives\\4.3.0\\system.runtime.serialization.primitives.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.accesscontrol\\4.7.0\\system.security.accesscontrol.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.1\\system.security.cryptography.algorithms.4.3.1.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.7.0\\system.security.cryptography.protecteddata.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.permissions\\4.7.0\\system.security.permissions.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.security.principal.windows\\4.7.0\\system.security.principal.windows.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading.tasks.parallel\\4.3.0\\system.threading.tasks.parallel.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading.thread\\4.3.0\\system.threading.thread.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.threading.threadpool\\4.3.0\\system.threading.threadpool.4.3.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.windows.extensions\\4.7.0\\system.windows.extensions.4.7.0.nupkg.sha512", | |||||
| "C:\\Users\\christophe_brachet\\.nuget\\packages\\system.xml.readerwriter\\4.3.1\\system.xml.readerwriter.4.3.1.nupkg.sha512" | |||||
| ], | |||||
| "logs": [ | |||||
| { | |||||
| "code": "NU1904", | |||||
| "level": "Warning", | |||||
| "warningLevel": 1, | |||||
| "message": "Le package 'System.Drawing.Common' 4.7.0 présente une vulnérabilité de gravité critique connue, https://github.com/advisories/GHSA-rxg9-xrhp-64gj.", | |||||
| "libraryId": "System.Drawing.Common", | |||||
| "targetGraphs": [ | |||||
| "net8.0" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "code": "NU1903", | |||||
| "level": "Warning", | |||||
| "warningLevel": 1, | |||||
| "message": "Le package 'System.Text.RegularExpressions' 4.3.0 présente une vulnérabilité de gravité élevé(e) connue, https://github.com/advisories/GHSA-cmhx-cq75-c4mj.", | |||||
| "libraryId": "System.Text.RegularExpressions", | |||||
| "targetGraphs": [ | |||||
| "net8.0" | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } |