|
2 | 2 | using System.Collections.Generic; |
3 | 3 | using System.IO; |
4 | 4 | using System.Linq; |
| 5 | +using System.Text; |
5 | 6 | using LibGit2Sharp.Core; |
6 | 7 | using LibGit2Sharp.Tests.TestHelpers; |
7 | 8 | using Xunit; |
@@ -1055,5 +1056,75 @@ public void CanPrettifyAMessage() |
1055 | 1056 | Assert.Equal(expected, Commit.PrettifyMessage(input, '#')); |
1056 | 1057 | Assert.Equal(expected, Commit.PrettifyMessage(input.Replace('#', ';'), ';')); |
1057 | 1058 | } |
| 1059 | + |
| 1060 | + [Fact] |
| 1061 | + public void CanExtractSignatureFromCommit() |
| 1062 | + { |
| 1063 | + string commitData = @"tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6 |
| 1064 | +parent 34734e478d6cf50c27c9d69026d93974d052c454 |
| 1065 | +author Ben Burkert <ben@benburkert.com> 1358451456 -0800 |
| 1066 | +committer Ben Burkert <ben@benburkert.com> 1358451456 -0800 |
| 1067 | +gpgsig -----BEGIN PGP SIGNATURE----- |
| 1068 | + Version: GnuPG v1.4.12 (Darwin) |
| 1069 | + |
| 1070 | + iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al |
| 1071 | + o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8 |
| 1072 | + JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq |
| 1073 | + AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq |
| 1074 | + SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW |
| 1075 | + who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok |
| 1076 | + 6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG |
| 1077 | + cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu |
| 1078 | + c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9 |
| 1079 | + ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J |
| 1080 | + 7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc |
| 1081 | + cpxtDQQMGYFpXK/71stq |
| 1082 | + =ozeK |
| 1083 | + -----END PGP SIGNATURE----- |
| 1084 | +
|
| 1085 | +a simple commit which works |
| 1086 | +"; |
| 1087 | + |
| 1088 | + string signatureData = @"-----BEGIN PGP SIGNATURE----- |
| 1089 | +Version: GnuPG v1.4.12 (Darwin) |
| 1090 | +
|
| 1091 | +iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al |
| 1092 | +o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8 |
| 1093 | +JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq |
| 1094 | +AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq |
| 1095 | +SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW |
| 1096 | +who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok |
| 1097 | +6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG |
| 1098 | +cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu |
| 1099 | +c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9 |
| 1100 | +ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J |
| 1101 | +7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc |
| 1102 | +cpxtDQQMGYFpXK/71stq |
| 1103 | +=ozeK |
| 1104 | +-----END PGP SIGNATURE-----"; |
| 1105 | + |
| 1106 | + string signedData = @"tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6 |
| 1107 | +parent 34734e478d6cf50c27c9d69026d93974d052c454 |
| 1108 | +author Ben Burkert <ben@benburkert.com> 1358451456 -0800 |
| 1109 | +committer Ben Burkert <ben@benburkert.com> 1358451456 -0800 |
| 1110 | +
|
| 1111 | +a simple commit which works |
| 1112 | +"; |
| 1113 | + |
| 1114 | + string repoPath = InitNewRepository(); |
| 1115 | + using (var repo = new Repository(repoPath)) |
| 1116 | + { |
| 1117 | + var odb = repo.ObjectDatabase; |
| 1118 | + var signedId = odb.Write<Commit>(Encoding.UTF8.GetBytes(commitData)); |
| 1119 | + |
| 1120 | + // Look up the commit to make sure we wrote something valid |
| 1121 | + var commit = repo.Lookup<Commit>(signedId); |
| 1122 | + Assert.Equal("a simple commit which works\n", commit.Message); |
| 1123 | + |
| 1124 | + var signatureInfo = Commit.ExtractSignature(repo, signedId, "gpgsig"); |
| 1125 | + Assert.Equal(signedData, signatureInfo.SignedData); |
| 1126 | + Assert.Equal(signatureData, signatureInfo.Signature); |
| 1127 | + } |
| 1128 | + } |
1058 | 1129 | } |
1059 | 1130 | } |
0 commit comments