Exemplo n.º 1
0
        public async Task Ffde3072KnownDerivedValue()
        {
            var privKeyHex   = "3A-62-55-A6-3F-0A-E9-51-10-FF-67-01-C2-08-15-F6-92-6C-29-39-8D-2A-1A-5E-CC-00-3A-A9-B3-0D-E6-57-9C-83-D5-50-E8-33-94-28-12-4A-20-56-2E-4E-A1-F5-98-66-98-E7-42-9C-E9-0A-12-F1-00-20-3F-97-AE-A0-9D-24-F4-F6-45-27-E9-BD-34-68-97-20-8E-96-DE-DF-4A-B5-8A-5E-B1-91-4D-CC-2D-49-66-54-DF-DE-9A-A4-BE-16-83-9C-D1-2E-BF-7C-2F-AB-72-99-1F-9C-47-DF-9D-F3-45-08-93-E4-C4-AC-86-98-59-40-4F-A8-4D-DE-BD-E5-A4-45-CD-96-0D-12-38-80-47-FC-81-27-7E-3A-E8-C5-49-79-10-8A-C0-A2-0E-0A-28-31-29-14-97-9C-A6-08-8B-4A-93-C0-D0-1B-F9-BF-D6-04-52-3B-18-91-D2-DF-84-E6-9A-71-38-14-9D-17-C3-C8-33-5A-79-7F-2E-CB-4F-E2-8A-F4-63-8E-D9-A5-A5-76-B4-65-B8-9E-6C-00-CB-67-66-A9-58-E2-FA-F2-38-14-27-55-91-46-32-36-D3-A8-CD-50-AA-D0-AB-45-9F-EE-21-90-95-02-A8-0B-F1-4E-46-5C-B3-D7-C6-AC-2D-A8-93-4E-8F-0F-C8-81-AA-18-63-BF-ED-36-99-1C-F5-55-19-12-AE-02-20-8D-7F-BC-E9-1D-24-60-BD-C2-DA-85-D3-FF-BC-C7-09-62-7A-23-D3-4E-E9-F6-63-3B-B9-A2-37-63-5E-57-96-E1-B9-66-14-BF-19-8F-E0-C4-22-2A-55-BE-84-DB-3A-0C-FB-42-58-9C-1B-97-A0-34-76-82-FB-B3-BB-BE-E4-5A-5C-8B-62-F1-38-D9-4C-F7-F6-D2-1B-9B-47-D1-20-98-68-73-24-41-41-CA-26-71-22-B1-7E-F2-C3-6A-43-2D-49-16-DC-04-D8-A8-8F-30-9B-0A-CE-29-1A-09";
            var peerKeyHex   = "F5-0E-3E-AC-39-3D-65-20-A0-92-E8-87-11-42-EB-DD-AC-0B-64-69-23-8F-D8-16-60-4C-40-D4-35-88-D9-E4-C8-52-21-E3-5B-36-FF-96-80-8A-2A-F5-8A-18-57-AC-C6-B9-A3-4E-5B-1B-E7-F0-53-F5-23-C0-11-A9-0C-23-2E-53-52-B6-A8-0C-54-12-47-67-A9-FB-D4-F2-0C-41-10-E1-EA-14-78-CE-1A-04-F2-0F-04-D8-62-1F-AA-20-60-86-37-D0-27-D7-1C-40-3F-C2-EE-98-EF-7E-C1-35-5F-3D-1C-64-AC-08-9B-BC-2E-4C-B1-A3-A4-A0-6F-AF-4A-26-D6-31-BB-87-36-02-75-03-1E-30-C7-4E-25-57-42-1D-7D-22-75-CE-B9-2C-E0-0E-37-F3-CD-EA-32-CB-87-3A-69-4D-37-E3-12-23-18-01-C4-B3-98-1C-A3-87-E5-3F-E9-A4-AF-15-8F-CF-F2-A0-77-01-7A-8D-9D-B1-8B-81-D0-E2-E4-3E-7F-23-7F-DB-5A-6B-06-1B-1F-44-94-52-66-8E-2D-F9-B5-FF-8B-1F-72-80-EA-C4-33-77-95-E2-29-DB-61-16-87-8D-F5-01-A5-88-CE-0D-FC-1E-C5-CD-AA-7B-27-57-D2-61-9D-C1-7A-DB-3C-24-A6-FC-4C-00-A9-1D-46-12-38-EF-BD-DE-B0-9B-1C-06-5E-04-C4-92-83-92-DC-33-EA-2B-CA-A1-10-A3-29-7A-B0-6E-EC-D7-21-72-CE-36-5E-A5-FE-10-E3-05-87-72-16-41-40-12-B5-3E-AB-39-04-54-85-15-D8-F8-1D-B9-F8-4A-60-BE-83-02-DE-E5-51-B8-DF-C7-B9-42-D1-4F-CA-59-49-E7-C4-F7-C1-96-11-D3-EF-DF-FA-C7-E1-1A-D6-EA-BC-D4-51-70-81-60-1F-A1-45-7B-3C-B5-92-A7-8F-79-E1-67-BD-3C-15-09-33-97-96-5E-89-8F-DA-6E-88-72";
            var secretHex    = "B0-60-3B-2A-4C-FA-3D-D3-60-26-6F-CD-62-2B-26-66-35-0D-4E-57-92-8D-71-E3-9D-47-F5-AD-78-98-32-49-E1-BF-68-1A-1A-79-35-61-E9-1D-EB-BE-5C-5D-D2-AE-A0-DA-C1-8B-33-6F-ED-DF-B5-14-7A-C4-E2-6D-29-9B-6D-33-55-93-A3-F0-49-77-F9-E1-57-62-81-F9-44-C0-FE-C3-71-94-4A-69-C7-74-9C-1F-CD-E9-B8-45-B0-31-CB-1F-81-B0-B4-52-D5-05-E9-E5-63-73-1F-07-2F-D9-7B-B1-0A-1C-A3-22-80-04-EE-FA-05-AC-B8-59-5A-4E-5D-01-90-E5-4B-FE-8A-C2-79-D7-98-94-53-C1-6A-F3-DF-B4-A0-C8-D8-7E-C2-30-FB-CB-75-F3-93-A9-A3-0E-43-6F-DE-67-E8-55-1B-B4-70-0E-47-44-18-76-93-87-9D-DD-F7-EA-B3-9F-C6-B9-98-36-B5-1E-FC-4A-A0-23-2F-CD-4A-5E-60-03-DE-14-4F-DA-C6-57-3B-2E-6A-3D-4C-70-E5-30-E1-B9-AB-04-21-FA-0E-A6-98-5F-D1-EF-B7-BA-E1-6B-21-C3-70-65-34-F8-09-85-46-72-81-87-5A-D7-DA-85-B4-48-18-80-3D-22-84-B2-30-63-82-2B-05-65-42-73-6B-95-32-06-B3-25-87-05-27-54-C3-70-5D-C4-46-F9-57-CB-3B-D1-FA-F0-EB-C0-C5-93-E0-6A-82-9D-2C-F2-FA-25-D5-9A-F1-B9-F6-87-32-E0-5A-F4-5C-85-3D-52-CC-E2-5D-8D-74-C0-B2-4C-EC-8B-A1-9D-49-BD-A3-53-43-44-D0-E3-7E-61-FD-1E-FA-07-56-70-A4-8E-18-E8-EB-1E-C7-50-7B-60-CD-3E-88-E8-FC-DD-1A-84-0D-E4-EF-46-49-6C-56-D7-BC-85-75-BD-D3-3F-AB-CC-FD-8A-12-18-1C-F0-12-0A-08-7E-FD-B3-2C-F9";
            var publicKeyHex = "D0-BA-50-B9-61-33-93-44-47-EF-AC-E5-17-2D-09-2F-05-FA-F6-88-95-7A-C0-A3-E7-FE-C8-E9-DC-EB-5C-00-B0-B0-C3-43-F8-6A-E9-BC-24-0D-F4-8A-9F-31-E9-8E-9E-EF-1D-F8-9A-D3-07-DA-8A-F8-E5-DF-56-F0-63-22-96-D3-77-C4-97-78-CB-6B-DE-A1-79-AE-12-DE-B3-D6-99-B7-F1-F9-AE-BE-44-8E-4A-D3-E0-66-28-23-28-9D-0E-B8-AB-45-B2-76-E3-BB-93-7F-E2-D3-67-A7-B1-BB-DD-B2-42-AD-5D-A7-67-A8-42-EF-99-FA-8C-1D-97-3B-B3-DA-3B-72-09-AD-C8-7D-DD-53-8F-9C-95-6C-86-F6-93-56-0F-9F-CE-F3-72-02-42-17-8E-24-02-B9-C0-08-C3-23-18-87-58-2F-94-BA-CD-EF-99-ED-3B-4F-DC-A6-AC-62-AD-55-22-62-A4-03-F8-24-20-BA-90-74-43-9A-41-D7-C1-CF-81-9A-EF-73-C9-98-A8-97-F6-07-CC-03-56-A4-3E-9A-03-64-01-D1-A4-F6-18-37-44-35-05-59-11-EB-22-B3-8B-47-F6-20-68-C8-6C-CD-55-13-8D-81-31-E1-E8-45-5C-D6-1C-A7-22-42-25-9E-1F-EF-19-9D-02-D7-0B-FC-5D-1E-69-25-46-00-3A-91-1A-E9-CB-0E-25-22-34-69-CA-21-59-13-A2-AE-52-54-5D-C0-A1-E2-1F-0F-28-68-E6-86-5A-E8-D4-AB-F2-34-07-DC-CE-F0-5C-9D-8E-41-45-AB-4B-3C-F6-95-FA-1D-EE-0E-C8-B0-05-23-C7-FD-E5-02-FD-C4-64-0F-15-BA-41-00-2B-C1-38-0F-73-08-B9-A8-BE-50-06-6A-3E-3E-99-1C-F8-92-7A-8C-DE-C6-36-60-F1-B9-71-48-BE-B1-19-3C-D5-29-6F-38-F1-CE-78-E0-82-A9-7D-33-0F-4C-7B-1E-D4-5F";
            var privKey      = HexFunctions.ToBytes(privKeyHex);
            var peerKey      = HexFunctions.ToBytes(peerKeyHex);
            var publicKey    = HexFunctions.ToBytes(publicKeyHex);
            var secret       = HexFunctions.ToBytes(secretHex);

            await CheckSecret(NamedGroup.ffdhe3072, privKey, peerKey, publicKey, secret);
        }