activeBuildConfigurationName = Debug;
activeTarget = D2AAC07D0554694100DB518D /* simplepgp */;
addToTargets = (
+ D2AAC07D0554694100DB518D /* simplepgp */,
);
breakpoints = (
69868C9D14618450004C5D9B /* packet.c:22 */,
- 69269F4E14620FC200F69705 /* packet.c:241 */,
+ 69269F4E14620FC200F69705 /* packet.c:203 */,
);
codeSenseManager = 69868AD51460E35F004C5D9B /* Code sense */;
perUserDictionary = {
6926AC79146DC18500F69705 /* PBXTextBookmark */ = 6926AC79146DC18500F69705 /* PBXTextBookmark */;
6926AC7A146DC18500F69705 /* PBXTextBookmark */ = 6926AC7A146DC18500F69705 /* PBXTextBookmark */;
6926AC7B146DC18500F69705 /* PBXTextBookmark */ = 6926AC7B146DC18500F69705 /* PBXTextBookmark */;
+ 6926AC89146DC61500F69705 /* PBXTextBookmark */ = 6926AC89146DC61500F69705 /* PBXTextBookmark */;
+ 6926AC8A146DC61500F69705 /* PBXTextBookmark */ = 6926AC8A146DC61500F69705 /* PBXTextBookmark */;
+ 6926AC8B146DC61500F69705 /* PBXTextBookmark */ = 6926AC8B146DC61500F69705 /* PBXTextBookmark */;
+ 6926AC8C146DC61500F69705 /* PBXTextBookmark */ = 6926AC8C146DC61500F69705 /* PBXTextBookmark */;
+ 6926AC8E146DC65400F69705 /* PBXTextBookmark */ = 6926AC8E146DC65400F69705 /* PBXTextBookmark */;
+ 6926AC8F146DC65400F69705 /* PBXTextBookmark */ = 6926AC8F146DC65400F69705 /* PBXTextBookmark */;
+ 6926AC90146DC65400F69705 /* PBXTextBookmark */ = 6926AC90146DC65400F69705 /* PBXTextBookmark */;
+ 6926ACA6146DC70D00F69705 /* PBXTextBookmark */ = 6926ACA6146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACA7146DC70D00F69705 /* PBXTextBookmark */ = 6926ACA7146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACA8146DC70D00F69705 /* PBXTextBookmark */ = 6926ACA8146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACA9146DC70D00F69705 /* PBXTextBookmark */ = 6926ACA9146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACAA146DC70D00F69705 /* PBXTextBookmark */ = 6926ACAA146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACAB146DC70D00F69705 /* PBXTextBookmark */ = 6926ACAB146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACAC146DC70D00F69705 /* PBXTextBookmark */ = 6926ACAC146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACAD146DC70D00F69705 /* PBXTextBookmark */ = 6926ACAD146DC70D00F69705 /* PBXTextBookmark */;
+ 6926ACB6146DC76A00F69705 /* PBXTextBookmark */ = 6926ACB6146DC76A00F69705 /* PBXTextBookmark */;
+ 6926ACB7146DC76A00F69705 /* PBXTextBookmark */ = 6926ACB7146DC76A00F69705 /* PBXTextBookmark */;
+ 6926ACB8146DC76A00F69705 /* PBXTextBookmark */ = 6926ACB8146DC76A00F69705 /* PBXTextBookmark */;
+ 6926ACB9146DC76A00F69705 /* PBXTextBookmark */ = 6926ACB9146DC76A00F69705 /* PBXTextBookmark */;
+ 6926ACBC146DC78A00F69705 /* PBXTextBookmark */ = 6926ACBC146DC78A00F69705 /* PBXTextBookmark */;
+ 6926ACBD146DC78A00F69705 /* PBXTextBookmark */ = 6926ACBD146DC78A00F69705 /* PBXTextBookmark */;
+ 6926ACD7146DC8A000F69705 /* PBXTextBookmark */ = 6926ACD7146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACD8146DC8A000F69705 /* PBXTextBookmark */ = 6926ACD8146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACD9146DC8A000F69705 /* PBXTextBookmark */ = 6926ACD9146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACDA146DC8A000F69705 /* PBXTextBookmark */ = 6926ACDA146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACDB146DC8A000F69705 /* PBXTextBookmark */ = 6926ACDB146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACDC146DC8A000F69705 /* PBXTextBookmark */ = 6926ACDC146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACDD146DC8A000F69705 /* PBXTextBookmark */ = 6926ACDD146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACDE146DC8A000F69705 /* PBXTextBookmark */ = 6926ACDE146DC8A000F69705 /* PBXTextBookmark */;
+ 6926ACEE146DC91F00F69705 /* PBXTextBookmark */ = 6926ACEE146DC91F00F69705 /* PBXTextBookmark */;
+ 6926ACEF146DC91F00F69705 /* PBXTextBookmark */ = 6926ACEF146DC91F00F69705 /* PBXTextBookmark */;
+ 6926ACF0146DC91F00F69705 /* PBXTextBookmark */ = 6926ACF0146DC91F00F69705 /* PBXTextBookmark */;
+ 6926ACF1146DC91F00F69705 /* PBXTextBookmark */ = 6926ACF1146DC91F00F69705 /* PBXTextBookmark */;
+ 6926ACF2146DC91F00F69705 /* PBXTextBookmark */ = 6926ACF2146DC91F00F69705 /* PBXTextBookmark */;
+ 6926ACF7146DC97F00F69705 /* PBXTextBookmark */ = 6926ACF7146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACF8146DC97F00F69705 /* PBXTextBookmark */ = 6926ACF8146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACF9146DC97F00F69705 /* PBXTextBookmark */ = 6926ACF9146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACFA146DC97F00F69705 /* PBXTextBookmark */ = 6926ACFA146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACFB146DC97F00F69705 /* PBXTextBookmark */ = 6926ACFB146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACFC146DC97F00F69705 /* PBXTextBookmark */ = 6926ACFC146DC97F00F69705 /* PBXTextBookmark */;
+ 6926ACFD146DC99E00F69705 /* PBXTextBookmark */ = 6926ACFD146DC99E00F69705 /* PBXTextBookmark */;
+ 6926ACFE146DC99E00F69705 /* PBXTextBookmark */ = 6926ACFE146DC99E00F69705 /* PBXTextBookmark */;
+ 6926AD0F146DC9D700F69705 /* PBXTextBookmark */ = 6926AD0F146DC9D700F69705 /* PBXTextBookmark */;
+ 6926AD10146DC9D700F69705 /* PBXBookmark */ = 6926AD10146DC9D700F69705 /* PBXBookmark */;
+ 6926AD11146DC9D700F69705 /* PBXTextBookmark */ = 6926AD11146DC9D700F69705 /* PBXTextBookmark */;
69868BD11460F42D004C5D9B = 69868BD11460F42D004C5D9B /* PBXTextBookmark */;
69868BD91460F468004C5D9B = 69868BD91460F468004C5D9B /* PBXTextBookmark */;
69868C931460F7C3004C5D9B = 69868C931460F7C3004C5D9B /* PBXTextBookmark */;
};
69269F2114620D0F00F69705 /* packet_test.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {905, 897}}";
- sepNavSelRange = "{683, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {905, 871}}";
+ sepNavSelRange = "{716, 0}";
sepNavVisRange = "{0, 1509}";
};
};
69269F2214620D0F00F69705 /* packet_test.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {905, 618}}";
- sepNavSelRange = "{683, 0}";
- sepNavVisRange = "{0, 839}";
+ sepNavSelRange = "{763, 0}";
+ sepNavVisRange = "{0, 867}";
};
};
69269F2314620D0F00F69705 /* packet.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {509, 23660}}";
- sepNavSelRange = "{48986, 0}";
- sepNavVisRange = "{39463, 248}";
+ sepNavIntBoundsRect = "{{0, 0}, {905, 21710}}";
+ sepNavSelRange = "{78, 606}";
+ sepNavVisRange = "{0, 1153}";
sepNavWindowFrame = "{{139, 11}, {1136, 746}}";
};
};
69269F2414620D0F00F69705 /* packet.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {905, 2691}}";
- sepNavSelRange = "{80, 0}";
- sepNavVisRange = "{0, 1540}";
+ sepNavIntBoundsRect = "{{0, 0}, {905, 1157}}";
+ sepNavSelRange = "{81, 603}";
+ sepNavVisRange = "{0, 1510}";
};
};
- 69269F4E14620FC200F69705 /* packet.c:241 */ = {
+ 69269F4E14620FC200F69705 /* packet.c:203 */ = {
isa = PBXFileBreakpoint;
actions = (
);
functionName = "spgp_decode_message()";
hitCount = 0;
ignoreCount = 0;
- lineNumber = 241;
+ lineNumber = 203;
location = duckdog;
modificationTime = 342734490.62607;
originalNumberOfMultipleMatches = 1;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 76";
rLen = 0;
- rLoc = 2933;
+ rLoc = 1210;
rType = 0;
vrLen = 902;
vrLoc = 1034;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 816";
rLen = 0;
- rLoc = 30811;
+ rLoc = 29058;
rType = 0;
vrLen = 1446;
vrLoc = 24434;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 820";
rLen = 0;
- rLoc = 30979;
+ rLoc = 29226;
rType = 0;
vrLen = 1479;
vrLoc = 24016;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 791";
rLen = 0;
- rLoc = 29978;
+ rLoc = 28225;
rType = 0;
vrLen = 1529;
vrLoc = 27306;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 179";
rLen = 0;
- rLoc = 7446;
+ rLoc = 6086;
rType = 0;
vrLen = 1966;
vrLoc = 4084;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 960";
rLen = 0;
- rLoc = 52644;
+ rLoc = 50823;
rType = 0;
vrLen = 1655;
vrLoc = 28491;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 975";
rLen = 0;
- rLoc = 53116;
+ rLoc = 50823;
rType = 0;
vrLen = 1799;
vrLoc = 28668;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 974";
rLen = 0;
- rLoc = 53062;
+ rLoc = 50823;
rType = 0;
vrLen = 1802;
vrLoc = 28668;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 672";
rLen = 0;
- rLoc = 25746;
+ rLoc = 23993;
rType = 0;
vrLen = 2232;
vrLoc = 19150;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 672";
rLen = 0;
- rLoc = 25746;
+ rLoc = 23993;
rType = 0;
vrLen = 2232;
vrLoc = 19150;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 671";
rLen = 0;
- rLoc = 25704;
+ rLoc = 23951;
rType = 0;
vrLen = 2244;
vrLoc = 19150;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 729";
rLen = 0;
- rLoc = 27667;
+ rLoc = 25914;
rType = 0;
vrLen = 2063;
vrLoc = 21499;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 251";
rLen = 0;
- rLoc = 9751;
+ rLoc = 7999;
rType = 0;
vrLen = 1791;
vrLoc = 6607;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 144";
rLen = 0;
- rLoc = 4787;
+ rLoc = 1984;
rType = 0;
vrLen = 1408;
vrLoc = 1952;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 233";
rLen = 0;
- rLoc = 9040;
+ rLoc = 7680;
rType = 0;
vrLen = 1575;
vrLoc = 6539;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 233";
rLen = 0;
- rLoc = 9040;
+ rLoc = 7680;
rType = 0;
vrLen = 1575;
vrLoc = 6539;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 147";
rLen = 0;
- rLoc = 4896;
+ rLoc = 2264;
rType = 0;
vrLen = 1402;
vrLoc = 1936;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 325";
rLen = 0;
- rLoc = 13424;
+ rLoc = 11671;
rType = 0;
vrLen = 1425;
vrLoc = 8435;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 243";
rLen = 0;
- rLoc = 9899;
+ rLoc = 8146;
rType = 0;
vrLen = 1663;
vrLoc = 6777;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 226";
rLen = 0;
- rLoc = 9251;
+ rLoc = 7891;
rType = 0;
vrLen = 1673;
vrLoc = 6472;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 96";
- rLen = 16;
- rLoc = 3292;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1315;
vrLoc = 1627;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 181";
rLen = 1;
- rLoc = 7798;
+ rLoc = 6438;
rType = 0;
vrLen = 1900;
vrLoc = 4533;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 959";
rLen = 0;
- rLoc = 46558;
+ rLoc = 44805;
rType = 0;
vrLen = 1765;
vrLoc = 29422;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 969";
rLen = 0;
- rLoc = 47040;
+ rLoc = 45287;
rType = 0;
vrLen = 1684;
vrLoc = 29422;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 55";
rLen = 0;
- rLoc = 2195;
+ rLoc = 1210;
rType = 0;
vrLen = 1225;
vrLoc = 539;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 977";
rLen = 0;
- rLoc = 47342;
+ rLoc = 45589;
rType = 0;
vrLen = 1601;
vrLoc = 29516;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 977";
rLen = 0;
- rLoc = 47342;
+ rLoc = 45589;
rType = 0;
vrLen = 1598;
vrLoc = 29516;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 959";
rLen = 0;
- rLoc = 46519;
+ rLoc = 44766;
rType = 0;
vrLen = 1633;
vrLoc = 29516;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 974";
rLen = 0;
- rLoc = 47008;
+ rLoc = 45255;
rType = 0;
vrLen = 1643;
vrLoc = 29261;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 984";
rLen = 0;
- rLoc = 47318;
+ rLoc = 45565;
rType = 0;
vrLen = 1637;
vrLoc = 29261;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 993";
rLen = 0;
- rLoc = 48068;
+ rLoc = 46315;
rType = 0;
vrLen = 1784;
vrLoc = 30278;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 55";
rLen = 0;
- rLoc = 2195;
+ rLoc = 1210;
rType = 0;
vrLen = 1429;
vrLoc = 1284;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 993";
rLen = 0;
- rLoc = 48068;
+ rLoc = 46315;
rType = 0;
vrLen = 1784;
vrLoc = 30278;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 993";
rLen = 0;
- rLoc = 48068;
+ rLoc = 46315;
rType = 0;
vrLen = 1847;
vrLoc = 30172;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 55";
rLen = 0;
- rLoc = 2195;
+ rLoc = 1210;
rType = 0;
vrLen = 1357;
vrLoc = 1744;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 990";
rLen = 0;
- rLoc = 47433;
+ rLoc = 45680;
rType = 0;
vrLen = 1796;
vrLoc = 29921;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1025";
rLen = 0;
- rLoc = 51050;
+ rLoc = 49297;
rType = 0;
vrLen = 1708;
vrLoc = 30610;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 55";
rLen = 0;
- rLoc = 2195;
+ rLoc = 1210;
rType = 0;
vrLen = 1318;
vrLoc = 1099;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1025";
rLen = 0;
- rLoc = 51026;
+ rLoc = 49273;
rType = 0;
vrLen = 1740;
vrLoc = 30610;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1002";
rLen = 0;
- rLoc = 47743;
+ rLoc = 45990;
rType = 0;
vrLen = 1864;
vrLoc = 29944;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 154";
- rLen = 56;
- rLoc = 4597;
+ rLen = 0;
+ rLoc = 1505;
rType = 0;
vrLen = 1515;
vrLoc = 2213;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1001";
rLen = 0;
- rLoc = 47742;
+ rLoc = 45989;
rType = 0;
vrLen = 1801;
vrLoc = 30007;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 249";
rLen = 0;
- rLoc = 9700;
+ rLoc = 7999;
rType = 0;
vrLen = 1363;
vrLoc = 6644;
};
6926A660146B38F200F69705 /* keychain.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {905, 1482}}";
- sepNavSelRange = "{117, 563}";
- sepNavVisRange = "{0, 1255}";
+ sepNavIntBoundsRect = "{{0, 0}, {905, 1430}}";
+ sepNavSelRange = "{738, 0}";
+ sepNavVisRange = "{0, 1265}";
};
};
6926A661146B38F200F69705 /* keychain.h */ = {
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 50";
rLen = 0;
- rLoc = 1469;
+ rLoc = 1050;
rType = 0;
vrLen = 1332;
vrLoc = 30243;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 153";
rLen = 0;
- rLoc = 4550;
+ rLoc = 1457;
rType = 0;
vrLen = 1139;
vrLoc = 2589;
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 37";
rLen = 0;
- rLoc = 1290;
+ rLoc = 1318;
rType = 0;
vrLen = 1008;
vrLoc = 0;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 49";
rLen = 25;
- rLoc = 1549;
+ rLoc = 1116;
rType = 0;
vrLen = 1196;
vrLoc = 262;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 20";
rLen = 0;
- rLoc = 971;
+ rLoc = 749;
rType = 0;
vrLen = 1201;
vrLoc = 0;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 108";
rLen = 0;
- rLoc = 3258;
+ rLoc = 1210;
rType = 0;
vrLen = 1088;
vrLoc = 2043;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 90";
rLen = 0;
- rLoc = 4429;
+ rLoc = 3996;
rType = 0;
vrLen = 1411;
vrLoc = 30330;
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 41";
rLen = 36;
- rLoc = 1327;
+ rLoc = 1355;
rType = 0;
vrLen = 1036;
vrLoc = 1048;
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 88";
rLen = 0;
- rLoc = 2419;
+ rLoc = 2447;
rType = 0;
vrLen = 1069;
vrLoc = 1014;
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 88";
rLen = 0;
- rLoc = 2419;
+ rLoc = 2447;
rType = 0;
vrLen = 1035;
vrLoc = 1048;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 90";
rLen = 0;
- rLoc = 4429;
+ rLoc = 3996;
rType = 0;
vrLen = 1432;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 90";
rLen = 0;
- rLoc = 4429;
+ rLoc = 3996;
rType = 0;
vrLen = 1432;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1444;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1444;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1444;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1453;
vrLoc = 31262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1453;
vrLoc = 31262;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 108";
rLen = 0;
- rLoc = 3258;
+ rLoc = 1210;
rType = 0;
vrLen = 1217;
vrLoc = 0;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 21";
rLen = 0;
- rLoc = 971;
+ rLoc = 749;
rType = 0;
vrLen = 1217;
vrLoc = 0;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1046";
rLen = 0;
- rLoc = 50907;
+ rLoc = 49154;
rType = 0;
vrLen = 1450;
vrLoc = 31285;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 0;
- rLoc = 50830;
+ rLoc = 49077;
rType = 0;
vrLen = 1450;
vrLoc = 31285;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 0;
- rLoc = 50830;
+ rLoc = 49077;
rType = 0;
vrLen = 1450;
vrLoc = 31285;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1048";
rLen = 0;
- rLoc = 50799;
+ rLoc = 49046;
rType = 0;
vrLen = 1333;
vrLoc = 31285;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 67";
rLen = 0;
- rLoc = 2355;
+ rLoc = 1210;
rType = 0;
vrLen = 895;
vrLoc = 993;
isa = PBXTextBookmark;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1226";
- rLen = 74;
- rLoc = 55459;
+ rLen = 0;
+ rLoc = 50824;
rType = 0;
vrLen = 1307;
vrLoc = 36795;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1034";
rLen = 0;
- rLoc = 48795;
+ rLoc = 47042;
rType = 0;
vrLen = 1205;
vrLoc = 30973;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 48607;
+ rLoc = 46854;
rType = 0;
vrLen = 1408;
vrLoc = 30775;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 67";
rLen = 0;
- rLoc = 2355;
+ rLoc = 1210;
rType = 0;
vrLen = 895;
vrLoc = 993;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 48226;
+ rLoc = 46473;
rType = 0;
vrLen = 1492;
vrLoc = 31248;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 48702;
+ rLoc = 46949;
rType = 0;
vrLen = 1462;
vrLoc = 31147;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1048";
rLen = 0;
- rLoc = 48924;
+ rLoc = 47171;
rType = 0;
vrLen = 1462;
vrLoc = 31147;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1049";
rLen = 0;
- rLoc = 48868;
+ rLoc = 47115;
rType = 0;
vrLen = 1394;
vrLoc = 31415;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1049";
rLen = 0;
- rLoc = 48868;
+ rLoc = 47115;
rType = 0;
vrLen = 1394;
vrLoc = 31415;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1029";
rLen = 0;
- rLoc = 48093;
+ rLoc = 46340;
rType = 0;
vrLen = 1498;
vrLoc = 30842;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 48170;
+ rLoc = 46417;
rType = 0;
vrLen = 1502;
vrLoc = 30842;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 48170;
+ rLoc = 46417;
rType = 0;
vrLen = 1508;
vrLoc = 30842;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 51";
- rLen = 15;
- rLoc = 1914;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 955;
vrLoc = 1025;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 970";
rLen = 119;
- rLoc = 46156;
+ rLoc = 44403;
rType = 0;
vrLen = 1389;
vrLoc = 31415;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1250";
rLen = 0;
- rLoc = 55742;
+ rLoc = 50824;
rType = 0;
vrLen = 1185;
vrLoc = 37615;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1250";
rLen = 0;
- rLoc = 55742;
+ rLoc = 50824;
rType = 0;
vrLen = 1185;
vrLoc = 37619;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1039";
rLen = 0;
- rLoc = 48454;
+ rLoc = 46701;
rType = 0;
vrLen = 1356;
vrLoc = 31419;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1064";
rLen = 0;
- rLoc = 49306;
+ rLoc = 47553;
rType = 0;
vrLen = 1461;
vrLoc = 31857;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1062";
rLen = 0;
- rLoc = 49166;
+ rLoc = 47413;
rType = 0;
vrLen = 1476;
vrLoc = 31764;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
- rLoc = 1553;
+ rLoc = 1495;
rType = 1;
};
6926A7E1146B59BC00F69705 /* PBXTextBookmark */ = {
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 978";
rLen = 0;
- rLoc = 46490;
+ rLoc = 44737;
rType = 0;
vrLen = 1540;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1064";
rLen = 0;
- rLoc = 49306;
+ rLoc = 47553;
rType = 0;
vrLen = 1532;
vrLoc = 31881;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 108";
- rLen = 14;
- rLoc = 3197;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1072;
vrLoc = 2099;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1065";
rLen = 0;
- rLoc = 49293;
+ rLoc = 47540;
rType = 0;
vrLen = 1532;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1069";
rLen = 0;
- rLoc = 49582;
+ rLoc = 47829;
rType = 0;
vrLen = 1453;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1071";
rLen = 0;
- rLoc = 49618;
+ rLoc = 47865;
rType = 0;
vrLen = 1532;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1069";
rLen = 0;
- rLoc = 49457;
+ rLoc = 47704;
rType = 0;
vrLen = 1612;
vrLoc = 31913;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 67";
rLen = 0;
- rLoc = 2316;
+ rLoc = 1210;
rType = 0;
vrLen = 959;
vrLoc = 1262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1067";
rLen = 0;
- rLoc = 49348;
+ rLoc = 47595;
rType = 0;
vrLen = 1555;
vrLoc = 31987;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1067";
rLen = 0;
- rLoc = 49348;
+ rLoc = 47595;
rType = 0;
vrLen = 1555;
vrLoc = 31987;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1073";
rLen = 0;
- rLoc = 49624;
+ rLoc = 47871;
rType = 0;
vrLen = 1560;
vrLoc = 31987;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 68";
rLen = 0;
- rLoc = 2316;
+ rLoc = 1210;
rType = 0;
vrLen = 945;
vrLoc = 1262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1073";
rLen = 0;
- rLoc = 49624;
+ rLoc = 47871;
rType = 0;
vrLen = 1560;
vrLoc = 31987;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1075";
rLen = 0;
- rLoc = 49698;
+ rLoc = 47945;
rType = 0;
vrLen = 1486;
vrLoc = 31987;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1086";
rLen = 0;
- rLoc = 50058;
+ rLoc = 48305;
rType = 0;
vrLen = 1581;
vrLoc = 32939;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1088";
rLen = 0;
- rLoc = 50058;
+ rLoc = 48305;
rType = 0;
vrLen = 1636;
vrLoc = 32363;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1088";
rLen = 0;
- rLoc = 50058;
+ rLoc = 48305;
rType = 0;
vrLen = 1637;
vrLoc = 32362;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1089";
rLen = 0;
- rLoc = 50058;
+ rLoc = 48305;
rType = 0;
vrLen = 1647;
vrLoc = 32362;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 50112;
+ rLoc = 48359;
rType = 0;
vrLen = 1651;
vrLoc = 32366;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 50112;
+ rLoc = 48359;
rType = 0;
vrLen = 1651;
vrLoc = 32366;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 50112;
+ rLoc = 48359;
rType = 0;
vrLen = 1658;
vrLoc = 32366;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 50112;
+ rLoc = 48359;
rType = 0;
vrLen = 1658;
vrLoc = 32366;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 50112;
+ rLoc = 48359;
rType = 0;
vrLen = 1543;
vrLoc = 32544;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1096";
rLen = 0;
- rLoc = 50265;
+ rLoc = 48512;
rType = 0;
vrLen = 1484;
vrLoc = 32775;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 438";
rLen = 0;
- rLoc = 18554;
+ rLoc = 16801;
rType = 0;
vrLen = 1856;
vrLoc = 11348;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 438";
rLen = 0;
- rLoc = 18554;
+ rLoc = 16801;
rType = 0;
vrLen = 1886;
vrLoc = 11348;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 438";
rLen = 0;
- rLoc = 18554;
+ rLoc = 16801;
rType = 0;
vrLen = 1864;
vrLoc = 11538;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 438";
rLen = 0;
- rLoc = 18554;
+ rLoc = 16801;
rType = 0;
vrLen = 1858;
vrLoc = 11538;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 470";
rLen = 0;
- rLoc = 19664;
+ rLoc = 17911;
rType = 0;
vrLen = 1250;
vrLoc = 13332;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 38";
rLen = 0;
- rLoc = 1623;
+ rLoc = 1210;
rType = 0;
vrLen = 1096;
vrLoc = 485;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 444";
rLen = 0;
- rLoc = 18554;
+ rLoc = 16801;
rType = 0;
vrLen = 1464;
vrLoc = 12557;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 68";
rLen = 0;
- rLoc = 2295;
+ rLoc = 1862;
rType = 0;
vrLen = 1528;
vrLoc = 12678;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 68";
rLen = 0;
- rLoc = 2295;
+ rLoc = 1862;
rType = 0;
vrLen = 1528;
vrLoc = 12678;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 68";
rLen = 0;
- rLoc = 2295;
+ rLoc = 1862;
rType = 0;
vrLen = 1529;
vrLoc = 12678;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 68";
rLen = 0;
- rLoc = 2295;
+ rLoc = 1862;
rType = 0;
vrLen = 1530;
vrLoc = 12679;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 68";
rLen = 0;
- rLoc = 2295;
+ rLoc = 1862;
rType = 0;
vrLen = 1530;
vrLoc = 12679;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 38";
rLen = 0;
- rLoc = 1623;
+ rLoc = 1210;
rType = 0;
vrLen = 1093;
vrLoc = 485;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 127";
- rLen = 25;
- rLoc = 3598;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1088;
vrLoc = 2155;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 139";
rLen = 54;
- rLoc = 6130;
+ rLoc = 4770;
rType = 0;
vrLen = 1692;
vrLoc = 5114;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1012";
rLen = 0;
- rLoc = 43990;
+ rLoc = 42237;
rType = 0;
vrLen = 1382;
vrLoc = 30008;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1007";
rLen = 0;
- rLoc = 40088;
+ rLoc = 38335;
rType = 0;
vrLen = 1403;
vrLoc = 30374;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1017";
rLen = 0;
- rLoc = 40473;
+ rLoc = 38720;
rType = 0;
vrLen = 1491;
vrLoc = 30915;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 108";
- rLen = 18;
- rLoc = 3121;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1072;
vrLoc = 2171;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1017";
rLen = 0;
- rLoc = 40505;
+ rLoc = 38752;
rType = 0;
vrLen = 1495;
vrLoc = 30915;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1012";
rLen = 0;
- rLoc = 40251;
+ rLoc = 38498;
rType = 0;
vrLen = 1481;
vrLoc = 30905;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1040";
rLen = 0;
- rLoc = 41464;
+ rLoc = 39711;
rType = 0;
vrLen = 1427;
vrLoc = 30905;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 50";
rLen = 0;
- rLoc = 1902;
+ rLoc = 1210;
rType = 0;
vrLen = 1066;
vrLoc = 534;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 43990;
+ rLoc = 42237;
rType = 0;
vrLen = 1420;
vrLoc = 30908;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1050";
rLen = 119;
- rLoc = 46156;
+ rLoc = 44403;
rType = 0;
vrLen = 1509;
vrLoc = 31655;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 50";
rLen = 0;
- rLoc = 1902;
+ rLoc = 1210;
rType = 0;
vrLen = 906;
vrLoc = 823;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1058";
rLen = 0;
- rLoc = 45990;
+ rLoc = 44237;
rType = 0;
vrLen = 1317;
vrLoc = 32232;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1062";
rLen = 0;
- rLoc = 46137;
+ rLoc = 44384;
rType = 0;
vrLen = 1285;
vrLoc = 32232;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1030";
rLen = 0;
- rLoc = 40655;
+ rLoc = 38902;
rType = 0;
vrLen = 1417;
vrLoc = 31218;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1030";
rLen = 0;
- rLoc = 40655;
+ rLoc = 38902;
rType = 0;
vrLen = 1417;
vrLoc = 31218;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 40655;
+ rLoc = 38902;
rType = 0;
vrLen = 1392;
vrLoc = 31253;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 40655;
+ rLoc = 38902;
rType = 0;
vrLen = 1392;
vrLoc = 31253;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1032";
rLen = 0;
- rLoc = 40655;
+ rLoc = 38902;
rType = 0;
vrLen = 1451;
vrLoc = 31194;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 436";
rLen = 0;
- rLoc = 18771;
+ rLoc = 17018;
rType = 0;
vrLen = 1818;
vrLoc = 11735;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 436";
rLen = 0;
- rLoc = 18771;
+ rLoc = 17018;
rType = 0;
vrLen = 1451;
vrLoc = 12773;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 437";
rLen = 0;
- rLoc = 18777;
+ rLoc = 17024;
rType = 0;
vrLen = 1519;
vrLoc = 12550;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 437";
rLen = 0;
- rLoc = 18777;
+ rLoc = 17024;
rType = 0;
vrLen = 1523;
vrLoc = 12550;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 437";
rLen = 0;
- rLoc = 18777;
+ rLoc = 17024;
rType = 0;
vrLen = 1519;
vrLoc = 12550;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 437";
rLen = 0;
- rLoc = 18777;
+ rLoc = 17024;
rType = 0;
vrLen = 1519;
vrLoc = 12550;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1074";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1529;
vrLoc = 31834;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1074";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1529;
vrLoc = 31834;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1074";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1635;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1074";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1635;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1074";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1634;
vrLoc = 31881;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 454";
rLen = 0;
- rLoc = 19214;
+ rLoc = 17461;
rType = 0;
vrLen = 1502;
vrLoc = 12734;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1076";
rLen = 0;
- rLoc = 42136;
+ rLoc = 40383;
rType = 0;
vrLen = 1580;
vrLoc = 32022;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 50";
rLen = 0;
- rLoc = 1902;
+ rLoc = 1210;
rType = 0;
vrLen = 887;
vrLoc = 823;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 43384;
+ rLoc = 41631;
rType = 0;
vrLen = 1776;
vrLoc = 32146;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 177";
rLen = 0;
- rLoc = 6836;
+ rLoc = 5476;
rType = 0;
vrLen = 1558;
vrLoc = 5039;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 210";
rLen = 0;
- rLoc = 7868;
+ rLoc = 6508;
rType = 0;
vrLen = 1859;
vrLoc = 5449;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1020";
rLen = 211;
- rLoc = 39784;
+ rLoc = 38031;
rType = 0;
vrLen = 1580;
vrLoc = 33567;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1020";
rLen = 211;
- rLoc = 39784;
+ rLoc = 38031;
rType = 0;
vrLen = 1580;
vrLoc = 33567;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1119";
rLen = 0;
- rLoc = 43771;
+ rLoc = 42018;
rType = 0;
vrLen = 1634;
vrLoc = 33895;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1070";
rLen = 0;
- rLoc = 41464;
+ rLoc = 39711;
rType = 0;
vrLen = 1725;
vrLoc = 32525;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 16";
rLen = 0;
- rLoc = 829;
+ rLoc = 856;
rType = 0;
vrLen = 975;
vrLoc = 0;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1037";
rLen = 0;
- rLoc = 39755;
+ rLoc = 38002;
rType = 0;
vrLen = 1329;
vrLoc = 31486;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1041";
rLen = 0;
- rLoc = 39372;
+ rLoc = 37619;
rType = 0;
vrLen = 1193;
vrLoc = 32102;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1035";
rLen = 0;
- rLoc = 38548;
+ rLoc = 36795;
rType = 0;
vrLen = 1145;
vrLoc = 32098;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1052";
rLen = 0;
- rLoc = 39316;
+ rLoc = 37563;
rType = 0;
vrLen = 1164;
vrLoc = 32098;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 50";
rLen = 0;
- rLoc = 1902;
+ rLoc = 1210;
rType = 0;
vrLen = 887;
vrLoc = 823;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1052";
rLen = 0;
- rLoc = 39316;
+ rLoc = 37563;
rType = 0;
vrLen = 1164;
vrLoc = 32098;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1031";
rLen = 0;
- rLoc = 36703;
+ rLoc = 34950;
rType = 0;
vrLen = 1078;
vrLoc = 32098;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 0;
- rLoc = 38300;
+ rLoc = 36547;
rType = 0;
vrLen = 1055;
vrLoc = 32098;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
- rLoc = 1553;
+ rLoc = 1495;
rType = 1;
};
6926A9D2146C759700F69705 /* PBXTextBookmark */ = {
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1287";
rLen = 0;
- rLoc = 48986;
+ rLoc = 47233;
rType = 0;
vrLen = 193;
vrLoc = 37053;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1139";
rLen = 0;
- rLoc = 41830;
+ rLoc = 40077;
rType = 0;
vrLen = 1815;
vrLoc = 34704;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1147";
rLen = 899;
- rLoc = 42185;
+ rLoc = 40432;
rType = 0;
vrLen = 1908;
vrLoc = 34706;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1153";
rLen = 0;
- rLoc = 42507;
+ rLoc = 40754;
rType = 0;
vrLen = 2044;
vrLoc = 35207;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1178";
rLen = 0;
- rLoc = 43509;
+ rLoc = 41756;
rType = 0;
vrLen = 2065;
vrLoc = 35634;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 0;
- rLoc = 37402;
+ rLoc = 35649;
rType = 0;
vrLen = 1109;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1037";
rLen = 0;
- rLoc = 37244;
+ rLoc = 35491;
rType = 0;
vrLen = 1119;
vrLoc = 32174;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 116";
rLen = 0;
- rLoc = 3258;
+ rLoc = 1210;
rType = 0;
vrLen = 1083;
vrLoc = 1859;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 10;
- rLoc = 37441;
+ rLoc = 35688;
rType = 0;
vrLen = 1150;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1043";
rLen = 0;
- rLoc = 37424;
+ rLoc = 35671;
rType = 0;
vrLen = 1147;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1052";
rLen = 0;
- rLoc = 38208;
+ rLoc = 36455;
rType = 0;
vrLen = 1124;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1050";
rLen = 0;
- rLoc = 37424;
+ rLoc = 35671;
rType = 0;
vrLen = 1104;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1053";
rLen = 0;
- rLoc = 37639;
+ rLoc = 35886;
rType = 0;
vrLen = 1137;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1055";
rLen = 0;
- rLoc = 38147;
+ rLoc = 36394;
rType = 0;
vrLen = 1142;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1036";
rLen = 0;
- rLoc = 36980;
+ rLoc = 35227;
rType = 0;
vrLen = 1150;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1061";
rLen = 0;
- rLoc = 37862;
+ rLoc = 36109;
rType = 0;
vrLen = 1122;
vrLoc = 32174;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1090";
rLen = 0;
- rLoc = 38991;
+ rLoc = 37238;
rType = 0;
vrLen = 1297;
vrLoc = 32706;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 441";
rLen = 0;
- rLoc = 18167;
+ rLoc = 16414;
rType = 0;
vrLen = 1908;
vrLoc = 12417;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 442";
rLen = 0;
- rLoc = 18073;
+ rLoc = 16320;
rType = 0;
vrLen = 1779;
vrLoc = 12746;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1099";
rLen = 0;
- rLoc = 39281;
+ rLoc = 37528;
rType = 0;
vrLen = 1295;
vrLoc = 33118;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 445";
rLen = 0;
- rLoc = 18167;
+ rLoc = 16414;
rType = 0;
vrLen = 1757;
vrLoc = 12940;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1059";
rLen = 0;
- rLoc = 37648;
+ rLoc = 35895;
rType = 0;
vrLen = 1177;
vrLoc = 32255;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1072";
rLen = 0;
- rLoc = 38197;
+ rLoc = 36444;
rType = 0;
vrLen = 1182;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1072";
rLen = 0;
- rLoc = 38189;
+ rLoc = 36436;
rType = 0;
vrLen = 1192;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1072";
rLen = 0;
- rLoc = 38189;
+ rLoc = 36436;
rType = 0;
vrLen = 1192;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1069";
rLen = 0;
- rLoc = 38094;
+ rLoc = 36341;
rType = 0;
vrLen = 1206;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1069";
rLen = 0;
- rLoc = 38056;
+ rLoc = 36303;
rType = 0;
vrLen = 1234;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1069";
rLen = 0;
- rLoc = 38056;
+ rLoc = 36303;
rType = 0;
vrLen = 1234;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1045";
rLen = 0;
- rLoc = 37129;
+ rLoc = 35376;
rType = 0;
vrLen = 1271;
vrLoc = 32235;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1058";
rLen = 0;
- rLoc = 37396;
+ rLoc = 35643;
rType = 0;
vrLen = 1327;
vrLoc = 32262;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 116";
rLen = 0;
- rLoc = 3258;
+ rLoc = 1210;
rType = 0;
vrLen = 1083;
vrLoc = 1859;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 116";
rLen = 0;
- rLoc = 3258;
+ rLoc = 1210;
rType = 0;
vrLen = 1109;
vrLoc = 2600;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 164";
- rLen = 15;
- rLoc = 4316;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1015;
vrLoc = 2734;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1058";
rLen = 0;
- rLoc = 37396;
+ rLoc = 35643;
rType = 0;
vrLen = 1327;
vrLoc = 32262;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 212";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1596;
vrLoc = 4866;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 298";
rLen = 0;
- rLoc = 8752;
+ rLoc = 7392;
rType = 0;
vrLen = 1521;
vrLoc = 9063;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 112";
- rLen = 17;
- rLoc = 3176;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1104;
vrLoc = 1941;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1173";
rLen = 0;
- rLoc = 39532;
+ rLoc = 37779;
rType = 0;
vrLen = 1361;
vrLoc = 35270;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 217";
rLen = 0;
- rLoc = 6218;
+ rLoc = 4858;
rType = 0;
vrLen = 1216;
vrLoc = 7015;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 189";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1764;
vrLoc = 5299;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 189";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1764;
vrLoc = 5299;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 184";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1764;
vrLoc = 5299;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 189";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1756;
vrLoc = 5299;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 190";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1786;
vrLoc = 5299;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1134";
rLen = 0;
- rLoc = 38056;
+ rLoc = 36303;
rType = 0;
vrLen = 1423;
vrLoc = 34344;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1104";
rLen = 0;
- rLoc = 37125;
+ rLoc = 35372;
rType = 0;
vrLen = 1485;
vrLoc = 35523;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1104";
rLen = 0;
- rLoc = 37125;
+ rLoc = 35372;
rType = 0;
vrLen = 1485;
vrLoc = 35523;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1104";
rLen = 0;
- rLoc = 37125;
+ rLoc = 35372;
rType = 0;
vrLen = 1381;
vrLoc = 34415;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1121";
rLen = 0;
- rLoc = 37497;
+ rLoc = 35744;
rType = 0;
vrLen = 1375;
vrLoc = 34119;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1144";
rLen = 0;
- rLoc = 38285;
+ rLoc = 36532;
rType = 0;
vrLen = 1413;
vrLoc = 34544;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1127";
rLen = 0;
- rLoc = 37760;
+ rLoc = 36007;
rType = 0;
vrLen = 1413;
vrLoc = 34544;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1124";
rLen = 0;
- rLoc = 37614;
+ rLoc = 35861;
rType = 0;
vrLen = 1411;
vrLoc = 34544;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1277";
rLen = 0;
- rLoc = 43054;
+ rLoc = 41301;
rType = 0;
vrLen = 1880;
vrLoc = 39504;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1277";
rLen = 0;
- rLoc = 43081;
+ rLoc = 41328;
rType = 0;
vrLen = 1884;
vrLoc = 39504;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1278";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 1881;
vrLoc = 39504;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1281";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 2087;
vrLoc = 38355;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1281";
rLen = 0;
- rLoc = 43113;
+ rLoc = 41360;
rType = 0;
vrLen = 2087;
vrLoc = 38355;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1277";
rLen = 0;
- rLoc = 43081;
+ rLoc = 41328;
rType = 0;
vrLen = 2091;
vrLoc = 38355;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 183";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1879;
vrLoc = 5538;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 183";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1879;
vrLoc = 5538;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1184";
rLen = 0;
- rLoc = 39751;
+ rLoc = 37998;
rType = 0;
vrLen = 1433;
vrLoc = 35814;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 204";
rLen = 0;
- rLoc = 6114;
+ rLoc = 4754;
rType = 0;
vrLen = 1737;
vrLoc = 6105;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1198";
rLen = 0;
- rLoc = 39668;
+ rLoc = 37915;
rType = 0;
vrLen = 1219;
vrLoc = 36144;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 112";
- rLen = 17;
- rLoc = 3176;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 1104;
vrLoc = 1941;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 30";
rLen = 0;
- rLoc = 1424;
+ rLoc = 1201;
rType = 0;
vrLen = 1204;
vrLoc = 375;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 66";
rLen = 0;
- rLoc = 2113;
+ rLoc = 1210;
rType = 0;
vrLen = 1087;
vrLoc = 577;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1344";
rLen = 0;
- rLoc = 44841;
+ rLoc = 43088;
rType = 0;
vrLen = 1542;
vrLoc = 41396;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1344";
rLen = 0;
- rLoc = 44841;
+ rLoc = 43088;
rType = 0;
vrLen = 1542;
vrLoc = 41396;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1346";
rLen = 0;
- rLoc = 44828;
+ rLoc = 43075;
rType = 0;
vrLen = 1602;
vrLoc = 41258;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1349";
rLen = 0;
- rLoc = 44954;
+ rLoc = 43201;
rType = 0;
vrLen = 1653;
vrLoc = 41258;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1352";
rLen = 0;
- rLoc = 45238;
+ rLoc = 43485;
rType = 0;
vrLen = 1725;
vrLoc = 41258;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1354";
rLen = 0;
- rLoc = 45238;
+ rLoc = 43485;
rType = 0;
vrLen = 1698;
vrLoc = 41258;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1354";
rLen = 0;
- rLoc = 45182;
+ rLoc = 43429;
rType = 0;
vrLen = 1699;
vrLoc = 41258;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1356";
rLen = 0;
- rLoc = 45240;
+ rLoc = 43487;
rType = 0;
vrLen = 1472;
vrLoc = 42122;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1346";
rLen = 0;
- rLoc = 44784;
+ rLoc = 43031;
rType = 0;
vrLen = 1629;
vrLoc = 41950;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1346";
rLen = 0;
- rLoc = 44784;
+ rLoc = 43031;
rType = 0;
vrLen = 1629;
vrLoc = 41950;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1371";
rLen = 0;
- rLoc = 45519;
+ rLoc = 43766;
rType = 0;
vrLen = 1666;
vrLoc = 41950;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1339";
rLen = 0;
- rLoc = 44359;
+ rLoc = 42606;
rType = 0;
vrLen = 1625;
vrLoc = 41950;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 1379";
rLen = 0;
- rLoc = 45753;
+ rLoc = 44000;
rType = 0;
vrLen = 1393;
vrLoc = 42689;
isa = PBXTextBookmark;
fRef = 69269F2414620D0F00F69705 /* packet.h */;
name = "packet.h: 63";
- rLen = 29;
- rLoc = 2043;
+ rLen = 0;
+ rLoc = 1210;
rType = 0;
vrLen = 863;
vrLoc = 1205;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 347";
rLen = 0;
- rLoc = 11458;
+ rLoc = 9705;
rType = 0;
vrLen = 1144;
vrLoc = 10747;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 335";
rLen = 0;
- rLoc = 11002;
+ rLoc = 9249;
rType = 0;
vrLen = 1083;
vrLoc = 11237;
6926AC66146DBC7D00F69705 /* README */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {905, 618}}";
- sepNavSelRange = "{236, 0}";
- sepNavVisRange = "{0, 1100}";
+ sepNavSelRange = "{937, 0}";
+ sepNavVisRange = "{0, 1119}";
};
};
6926AC67146DBC9B00F69705 /* PBXTextBookmark */ = {
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 88";
rLen = 0;
- rLoc = 2419;
+ rLoc = 2447;
rType = 0;
vrLen = 1032;
vrLoc = 201;
fRef = 69269F2314620D0F00F69705 /* packet.c */;
name = "packet.c: 335";
rLen = 0;
- rLoc = 11002;
+ rLoc = 9249;
rType = 0;
vrLen = 1083;
vrLoc = 11237;
fRef = 6926AC66146DBC7D00F69705 /* README */;
name = "README: 1";
rLen = 0;
- rLoc = 1100;
+ rLoc = 1119;
rType = 0;
vrLen = 0;
vrLoc = 0;
fRef = 6926AC66146DBC7D00F69705 /* README */;
name = "README: 1";
rLen = 0;
- rLoc = 1100;
+ rLoc = 1119;
rType = 0;
vrLen = 0;
vrLoc = 0;
fRef = 6926AC66146DBC7D00F69705 /* README */;
name = "README: 25";
rLen = 0;
- rLoc = 1074;
+ rLoc = 1093;
rType = 0;
vrLen = 921;
vrLoc = 0;
fRef = 6926A660146B38F200F69705 /* keychain.c */;
name = "keychain.c: 88";
rLen = 0;
- rLoc = 2419;
+ rLoc = 2447;
rType = 0;
vrLen = 1032;
vrLoc = 201;
vrLen = 1100;
vrLoc = 0;
};
+ 6926AC89146DC61500F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC66146DBC7D00F69705 /* README */;
+ name = "README: 7";
+ rLen = 0;
+ rLoc = 236;
+ rType = 0;
+ vrLen = 1100;
+ vrLoc = 0;
+ };
+ 6926AC8A146DC61500F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 206";
+ rLen = 0;
+ rLoc = 1505;
+ rType = 0;
+ vrLen = 984;
+ vrLoc = 4333;
+ };
+ 6926AC8B146DC61500F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 7";
+ rLen = 600;
+ rLoc = 81;
+ rType = 0;
+ vrLen = 1246;
+ vrLoc = 0;
+ };
+ 6926AC8C146DC61500F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 303";
+ rLen = 0;
+ rLoc = 7999;
+ rType = 0;
+ vrLen = 959;
+ vrLoc = 8934;
+ };
+ 6926AC8E146DC65400F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 284";
+ rLen = 0;
+ rLoc = 7999;
+ rType = 0;
+ vrLen = 1270;
+ vrLoc = 8934;
+ };
+ 6926AC8F146DC65400F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 206";
+ rLen = 0;
+ rLoc = 1505;
+ rType = 0;
+ vrLen = 984;
+ vrLoc = 4333;
+ };
+ 6926AC90146DC65400F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 203";
+ rLen = 0;
+ rLoc = 1428;
+ rType = 0;
+ vrLen = 1158;
+ vrLoc = 4333;
+ };
+ 6926AC9B146DC6BC00F69705 /* packet_private.h */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.h;
+ name = packet_private.h;
+ path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/packet_private.h";
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 2756}}";
+ sepNavSelRange = "{762, 0}";
+ sepNavVisRange = "{0, 1228}";
+ };
+ };
+ 6926ACA6146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 24";
+ rLen = 27;
+ rLoc = 710;
+ rType = 0;
+ vrLen = 1149;
+ vrLoc = 428;
+ };
+ 6926ACA7146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2214620D0F00F69705 /* packet_test.h */;
+ name = "packet_test.h: 26";
+ rLen = 0;
+ rLoc = 763;
+ rType = 0;
+ vrLen = 867;
+ vrLoc = 0;
+ };
+ 6926ACA8146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2114620D0F00F69705 /* packet_test.c */;
+ name = "packet_test.c: 23";
+ rLen = 0;
+ rLoc = 716;
+ rType = 0;
+ vrLen = 1509;
+ vrLoc = 0;
+ };
+ 6926ACA9146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926A661146B38F200F69705 /* keychain.h */;
+ name = "keychain.h: 19";
+ rLen = 0;
+ rLoc = 680;
+ rType = 0;
+ vrLen = 1207;
+ vrLoc = 0;
+ };
+ 6926ACAA146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926A660146B38F200F69705 /* keychain.c */;
+ name = "keychain.c: 24";
+ rLen = 0;
+ rLoc = 738;
+ rType = 0;
+ vrLen = 1265;
+ vrLoc = 0;
+ };
+ 6926ACAB146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC9B146DC6BC00F69705 /* packet_private.h */;
+ name = "packet_private.h: 12";
+ rLen = 0;
+ rLoc = 742;
+ rType = 0;
+ vrLen = 880;
+ vrLoc = 0;
+ };
+ 6926ACAC146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 45";
+ rLen = 0;
+ rLoc = 1210;
+ rType = 0;
+ vrLen = 1518;
+ vrLoc = 685;
+ };
+ 6926ACAD146DC70D00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 45";
+ rLen = 0;
+ rLoc = 1210;
+ rType = 0;
+ vrLen = 1518;
+ vrLoc = 685;
+ };
+ 6926ACB6146DC76A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC9B146DC6BC00F69705 /* packet_private.h */;
+ name = "packet_private.h: 35";
+ rLen = 0;
+ rLoc = 1251;
+ rType = 0;
+ vrLen = 955;
+ vrLoc = 0;
+ };
+ 6926ACB7146DC76A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 27";
+ rLen = 0;
+ rLoc = 749;
+ rType = 0;
+ vrLen = 1510;
+ vrLoc = 0;
+ };
+ 6926ACB8146DC76A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 34";
+ rLen = 0;
+ rLoc = 876;
+ rType = 0;
+ vrLen = 1174;
+ vrLoc = 647;
+ };
+ 6926ACB9146DC76A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 34";
+ rLen = 0;
+ rLoc = 876;
+ rType = 0;
+ vrLen = 1256;
+ vrLoc = 690;
+ };
+ 6926ACBC146DC78A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 34";
+ rLen = 0;
+ rLoc = 876;
+ rType = 0;
+ vrLen = 1256;
+ vrLoc = 690;
+ };
+ 6926ACBD146DC78A00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC66146DBC7D00F69705 /* README */;
+ name = "README: 27";
+ rLen = 0;
+ rLoc = 937;
+ rType = 0;
+ vrLen = 1119;
+ vrLoc = 0;
+ };
+ 6926ACBE146DC7E400F69705 /* util.h */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.h;
+ name = util.h;
+ path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/util.h";
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 618}}";
+ sepNavSelRange = "{730, 0}";
+ sepNavVisRange = "{0, 957}";
+ };
+ };
+ 6926ACBF146DC7E400F69705 /* util.c */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.c;
+ name = util.c;
+ path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/util.c";
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 715}}";
+ sepNavSelRange = "{1420, 0}";
+ sepNavVisRange = "{74, 1507}";
+ };
+ };
+ 6926ACD7146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC66146DBC7D00F69705 /* README */;
+ name = "README: 27";
+ rLen = 0;
+ rLoc = 937;
+ rType = 0;
+ vrLen = 1119;
+ vrLoc = 0;
+ };
+ 6926ACD8146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926A661146B38F200F69705 /* keychain.h */;
+ name = "keychain.h: 19";
+ rLen = 0;
+ rLoc = 680;
+ rType = 0;
+ vrLen = 1207;
+ vrLoc = 0;
+ };
+ 6926ACD9146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 7";
+ rLen = 603;
+ rLoc = 81;
+ rType = 0;
+ vrLen = 1510;
+ vrLoc = 0;
+ };
+ 6926ACDA146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACBE146DC7E400F69705 /* util.h */;
+ name = "util.h: 25";
+ rLen = 0;
+ rLoc = 730;
+ rType = 0;
+ vrLen = 957;
+ vrLoc = 0;
+ };
+ 6926ACDB146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACBF146DC7E400F69705 /* util.c */;
+ name = "util.c: 49";
+ rLen = 0;
+ rLoc = 1420;
+ rType = 0;
+ vrLen = 1507;
+ vrLoc = 74;
+ };
+ 6926ACDC146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC9B146DC6BC00F69705 /* packet_private.h */;
+ name = "packet_private.h: 26";
+ rLen = 0;
+ rLoc = 762;
+ rType = 0;
+ vrLen = 930;
+ vrLoc = 688;
+ };
+ 6926ACDD146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 25";
+ rLen = 0;
+ rLoc = 777;
+ rType = 0;
+ vrLen = 1193;
+ vrLoc = 575;
+ };
+ 6926ACDE146DC8A000F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 26";
+ rLen = 0;
+ rLoc = 777;
+ rType = 0;
+ vrLen = 1171;
+ vrLoc = 575;
+ };
+ 6926ACDF146DC8B700F69705 /* mpi.h */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.h;
+ name = mpi.h;
+ path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/mpi.h";
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 618}}";
+ sepNavSelRange = "{679, 0}";
+ sepNavVisRange = "{0, 1429}";
+ };
+ };
+ 6926ACE0146DC8B700F69705 /* mpi.c */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = sourcecode.c.c;
+ name = mpi.c;
+ path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/mpi.c";
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 1599}}";
+ sepNavSelRange = "{679, 0}";
+ sepNavVisRange = "{0, 1541}";
+ sepNavWindowFrame = "{{61, 85}, {1136, 746}}";
+ };
+ };
+ 6926ACEE146DC91F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACE0146DC8B700F69705 /* mpi.c */;
+ name = "mpi.c: 12";
+ rLen = 0;
+ rLoc = 703;
+ rType = 0;
+ vrLen = 1193;
+ vrLoc = 0;
+ };
+ 6926ACEF146DC91F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACDF146DC8B700F69705 /* mpi.h */;
+ name = "mpi.h: 14";
+ rLen = 0;
+ rLoc = 730;
+ rType = 0;
+ vrLen = 881;
+ vrLoc = 0;
+ };
+ 6926ACF0146DC91F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2414620D0F00F69705 /* packet.h */;
+ name = "packet.h: 7";
+ rLen = 603;
+ rLoc = 81;
+ rType = 0;
+ vrLen = 1510;
+ vrLoc = 0;
+ };
+ 6926ACF1146DC91F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 1614";
+ rLen = 0;
+ rLoc = 50824;
+ rType = 0;
+ vrLen = 1263;
+ vrLoc = 49545;
+ };
+ 6926ACF2146DC91F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 27";
+ rLen = 0;
+ rLoc = 794;
+ rType = 0;
+ vrLen = 1178;
+ vrLoc = 685;
+ };
+ 6926ACF7146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 6";
+ rLen = 606;
+ rLoc = 78;
+ rType = 0;
+ vrLen = 1153;
+ vrLoc = 0;
+ };
+ 6926ACF8146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AC9B146DC6BC00F69705 /* packet_private.h */;
+ name = "packet_private.h: 26";
+ rLen = 0;
+ rLoc = 762;
+ rType = 0;
+ vrLen = 1228;
+ vrLoc = 0;
+ };
+ 6926ACF9146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACBE146DC7E400F69705 /* util.h */;
+ name = "util.h: 25";
+ rLen = 0;
+ rLoc = 730;
+ rType = 0;
+ vrLen = 957;
+ vrLoc = 0;
+ };
+ 6926ACFA146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACBF146DC7E400F69705 /* util.c */;
+ name = "util.c: 49";
+ rLen = 0;
+ rLoc = 1420;
+ rType = 0;
+ vrLen = 1507;
+ vrLoc = 74;
+ };
+ 6926ACFB146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACDF146DC8B700F69705 /* mpi.h */;
+ name = "mpi.h: 20";
+ rLen = 0;
+ rLoc = 679;
+ rType = 0;
+ vrLen = 1429;
+ vrLoc = 0;
+ };
+ 6926ACFC146DC97F00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACE0146DC8B700F69705 /* mpi.c */;
+ name = "mpi.c: 20";
+ rLen = 0;
+ rLoc = 679;
+ rType = 0;
+ vrLen = 1541;
+ vrLoc = 0;
+ };
+ 6926ACFD146DC99E00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACDF146DC8B700F69705 /* mpi.h */;
+ name = "mpi.h: 20";
+ rLen = 0;
+ rLoc = 679;
+ rType = 0;
+ vrLen = 1429;
+ vrLoc = 0;
+ };
+ 6926ACFE146DC99E00F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926ACDF146DC8B700F69705 /* mpi.h */;
+ name = "mpi.h: 20";
+ rLen = 0;
+ rLoc = 679;
+ rType = 0;
+ vrLen = 1429;
+ vrLoc = 0;
+ };
+ 6926AD03146DC9BD00F69705 /* util.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {905, 702}}";
+ sepNavSelRange = "{642, 0}";
+ sepNavVisRange = "{0, 1420}";
+ };
+ };
+ 6926AD0F146DC9D700F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 69269F2314620D0F00F69705 /* packet.c */;
+ name = "packet.c: 6";
+ rLen = 606;
+ rLoc = 78;
+ rType = 0;
+ vrLen = 1153;
+ vrLoc = 0;
+ };
+ 6926AD10146DC9D700F69705 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 6926AD03146DC9BD00F69705 /* util.c */;
+ };
+ 6926AD11146DC9D700F69705 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6926AD03146DC9BD00F69705 /* util.c */;
+ name = "util.c: 18";
+ rLen = 0;
+ rLoc = 642;
+ rType = 0;
+ vrLen = 1420;
+ vrLoc = 0;
+ };
69868AD41460E35F004C5D9B /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
*/
#include "keychain.h"
+#include "packet_private.h"
#define SPGP_KEYCHAIN_DEFAULT_SIZE 5
+/*
+ * mpi.c
+ * simplepgp
+ *
+ * Created by Trevor Bentley on 11/11/11.
+ *
+ * Copyright 2011 Trevor Bentley
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "mpi.h"
+
+uint8_t spgp_read_all_public_mpis(uint8_t *msg,
+ uint32_t *idx,
+ uint32_t length,
+ spgp_public_pkt_t *pub) {
+ spgp_mpi_t *curMpi, *newMpi;
+ uint32_t i;
+ uint8_t mpiCount;
+
+ if (NULL == msg || NULL == idx || 0 == length || NULL == pub)
+ RAISE(INVALID_ARGS);
+
+ switch (pub->asymAlgo) {
+ case ASYM_ALGO_DSA: mpiCount = 4; break;
+ case ASYM_ALGO_ELGAMAL: mpiCount = 3; break;
+ default: RAISE(FORMAT_UNSUPPORTED);
+ }
+
+ // Read all the MPIs
+ for (i = 0; i < mpiCount; i++) {
+ // spgp_read_mpi() doesn't increment past the end of the MPI, so if this
+ // isn't the first pass we need to increment once more
+ if (i) SAFE_IDX_INCREMENT(*idx, length);
+ newMpi = spgp_read_mpi(msg, idx, length);
+ if (i == 0) {
+ pub->mpiHead = newMpi;
+ curMpi = pub->mpiHead;
+ }
+ else {
+ curMpi->next = newMpi;
+ curMpi = curMpi->next;
+ }
+ }
+ pub->mpiCount = mpiCount;
+
+ return pub->mpiCount;
+}
+
+uint8_t spgp_read_all_secret_mpis(uint8_t *msg,
+ uint32_t *idx,
+ uint32_t length,
+ spgp_secret_pkt_t *secret) {
+ spgp_mpi_t *curMpi;
+ spgp_public_pkt_t *pub = (spgp_public_pkt_t*)secret;
+
+ if (NULL == msg || NULL == idx || 0 == length || NULL == secret)
+ RAISE(INVALID_ARGS);
+
+ // Set curMpi to last valid Mpi in linked list
+ curMpi = pub->mpiHead;
+ while (curMpi->next) curMpi = curMpi->next;
+
+ // Read all the MPIs
+ if (pub->asymAlgo == ASYM_ALGO_DSA) {
+ // DSA secte MPIs: exponent x
+ curMpi->next = spgp_read_mpi(msg, idx, length);
+ pub->mpiCount++;
+ }
+ else {
+ RAISE(FORMAT_UNSUPPORTED);
+ }
+
+ return pub->mpiCount;
+}
+
+uint32_t spgp_mpi_length(uint8_t *mpi) {
+ uint32_t bits;
+ if (NULL == mpi) RAISE(INVALID_ARGS);
+ bits = ((mpi[0] << 8) | mpi[1]);
+ return (bits+7)/8;
+}
+
+spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx,
+ uint32_t length) {
+ spgp_mpi_t *mpi = NULL;
+
+ if (NULL == msg || NULL == idx || 0 == length) RAISE(INVALID_ARGS);
+
+ mpi = malloc(sizeof(*mpi));
+ if (NULL == mpi) RAISE(OUT_OF_MEMORY);
+ memset(mpi, 0, sizeof(*mpi));
+
+ // First two bytes are big-endian count of bits in MPI
+ if (length - *idx < 2) RAISE(BUFFER_OVERFLOW);
+ mpi->bits = ((msg[*idx] << 8) | msg[*idx + 1]);
+
+ mpi->count = (mpi->bits+7)/8;
+ LOG_PRINT("MPI Bits: %u\n", mpi->bits);
+
+ // Allocate space for MPI data
+ mpi->data = malloc(mpi->count + 2);
+ if (NULL == mpi->data) RAISE(OUT_OF_MEMORY);
+
+ // Copy data from input buffer to mpi buffer
+ memcpy(mpi->data, msg+*idx, mpi->count + 2);
+ *idx += mpi->count + 1;
+
+ return mpi;
+}
+/*
+ * mpi.h
+ * simplepgp
+ *
+ * Created by Trevor Bentley on 11/11/11.
+ *
+ * Copyright 2011 Trevor Bentley
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _MPI_H
+
+#include "packet_private.h"
+
+uint32_t spgp_mpi_length(uint8_t *mpi);
+
+spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx,
+ uint32_t length);
+
+uint8_t spgp_read_all_public_mpis(uint8_t *msg,
+ uint32_t *idx,
+ uint32_t length,
+ spgp_public_pkt_t *pub);
+
+uint8_t spgp_read_all_secret_mpis(uint8_t *msg,
+ uint32_t *idx,
+ uint32_t length,
+ spgp_secret_pkt_t *secret);
+
+
+#define _MPI_H
+#endif
*/
#include "packet.h"
-#include <stdio.h>
-#include <setjmp.h>
+#include "packet_private.h"
+#include "keychain.h"
+#include "util.h"
+#include "mpi.h"
+
#include "gcrypt.h"
+
#include <wchar.h>
#include <locale.h>
-#include "keychain.h"
#include <string.h>
-/**********************************************************************
-**
-** MACROS
-**
-***********************************************************************/
-#pragma mark Macros
-
-#define RAISE(err) do { \
- _spgp_err = (err); \
- LOG_PRINT("raise 0x%X\n",_spgp_err); \
- longjmp(exception,_spgp_err); \
- } while(0)
-
-#define SAFE_IDX_INCREMENT(idx,max) \
- do{ \
- if (++(idx)>=(max)) {\
- RAISE(BUFFER_OVERFLOW);\
- } \
- } while(0)
-
/**********************************************************************
**
**
***********************************************************************/
-static uint32_t _spgp_err;
-static jmp_buf exception;
+uint32_t _spgp_err;
+jmp_buf exception;
#ifdef DEBUG_LOG_ENABLED
uint8_t debug_log_enabled = 1;
static spgp_packet_t *spgp_secret_key_matching_id(spgp_packet_t *chain,
uint8_t *keyid);
-static uint32_t spgp_mpi_length(uint8_t *mpi);
-
-static spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx,
- uint32_t length);
-
-static uint8_t spgp_read_all_public_mpis(uint8_t *msg,
- uint32_t *idx,
- uint32_t length,
- spgp_public_pkt_t *pub);
-
-static uint8_t spgp_read_all_secret_mpis(uint8_t *msg,
- uint32_t *idx,
- uint32_t length,
- spgp_secret_pkt_t *secret);
-
+
static uint8_t spgp_read_salt(uint8_t *msg,
uint32_t *idx,
uint32_t length,
uint32_t length,
spgp_secret_pkt_t *secret);
-static uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo);
-
-static uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo);
-
-static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo);
-
-
/**********************************************************************
}
-uint8_t spgp_load_keychain_with_keys(spgp_packet_t *msg) {
- spgp_packet_t *cur = msg;
- uint8_t err = 0;
-
- if (setjmp(exception)) {
- LOG_PRINT("Exception (0x%x)\n",_spgp_err);
- goto end;
- }
-
- if (NULL == msg) RAISE(INVALID_ARGS);
- while ((cur = spgp_next_secret_key_packet(cur)) != NULL) {
- LOG_PRINT("Adding key to keychain.\n");
- cur = cur->next;
- }
-
- end:
- return err;
-}
-
-
void spgp_free_packet(spgp_packet_t **pkt) {
spgp_mpi_t *curMpi, *nextMpi;
return 0;
}
-static uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo) {
- switch (pgpalgo) {
- case 1: return GCRY_CIPHER_IDEA;
- case 2: return GCRY_CIPHER_3DES;
- case 3: return GCRY_CIPHER_CAST5;
- case 4: return GCRY_CIPHER_BLOWFISH;
- case 7: return GCRY_CIPHER_AES128;
- case 8: return GCRY_CIPHER_AES192;
- case 9: return GCRY_CIPHER_AES256;
- case 10:return GCRY_CIPHER_TWOFISH;
- default: return 0xFF;
- }
-}
-
-static uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo) {
- size_t ivlen = 0;
- if (gcry_cipher_algo_info(spgp_pgp_to_gcrypt_symmetric_algo(algo),
- GCRYCTL_GET_BLKLEN,
- NULL,
- &ivlen) != 0)
- RAISE(FORMAT_UNSUPPORTED);
- return ivlen;
-}
-
-static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo) {
- if (algo == HASH_ALGO_SHA1) return 8;
- else RAISE(FORMAT_UNSUPPORTED); // not implemented
- return 0;
-}
-
-static uint8_t spgp_read_all_public_mpis(uint8_t *msg,
- uint32_t *idx,
- uint32_t length,
- spgp_public_pkt_t *pub) {
- spgp_mpi_t *curMpi, *newMpi;
- uint32_t i;
- uint8_t mpiCount;
-
- if (NULL == msg || NULL == idx || 0 == length || NULL == pub)
- RAISE(INVALID_ARGS);
-
- switch (pub->asymAlgo) {
- case ASYM_ALGO_DSA: mpiCount = 4; break;
- case ASYM_ALGO_ELGAMAL: mpiCount = 3; break;
- default: RAISE(FORMAT_UNSUPPORTED);
- }
-
- // Read all the MPIs
- for (i = 0; i < mpiCount; i++) {
- // spgp_read_mpi() doesn't increment past the end of the MPI, so if this
- // isn't the first pass we need to increment once more
- if (i) SAFE_IDX_INCREMENT(*idx, length);
- newMpi = spgp_read_mpi(msg, idx, length);
- if (i == 0) {
- pub->mpiHead = newMpi;
- curMpi = pub->mpiHead;
- }
- else {
- curMpi->next = newMpi;
- curMpi = curMpi->next;
- }
- }
- pub->mpiCount = mpiCount;
-
- return pub->mpiCount;
-}
-static uint8_t spgp_read_all_secret_mpis(uint8_t *msg,
- uint32_t *idx,
- uint32_t length,
- spgp_secret_pkt_t *secret) {
- spgp_mpi_t *curMpi;
- spgp_public_pkt_t *pub = (spgp_public_pkt_t*)secret;
-
- if (NULL == msg || NULL == idx || 0 == length || NULL == secret)
- RAISE(INVALID_ARGS);
-
- // Set curMpi to last valid Mpi in linked list
- curMpi = pub->mpiHead;
- while (curMpi->next) curMpi = curMpi->next;
-
- // Read all the MPIs
- if (pub->asymAlgo == ASYM_ALGO_DSA) {
- // DSA secte MPIs: exponent x
- curMpi->next = spgp_read_mpi(msg, idx, length);
- pub->mpiCount++;
- }
- else {
- RAISE(FORMAT_UNSUPPORTED);
- }
-
- return pub->mpiCount;
-}
-
-static uint32_t spgp_mpi_length(uint8_t *mpi) {
- uint32_t bits;
- if (NULL == mpi) RAISE(INVALID_ARGS);
- bits = ((mpi[0] << 8) | mpi[1]);
- return (bits+7)/8;
-}
-
-static spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx,
- uint32_t length) {
- spgp_mpi_t *mpi = NULL;
-
- if (NULL == msg || NULL == idx || 0 == length) RAISE(INVALID_ARGS);
-
- mpi = malloc(sizeof(*mpi));
- if (NULL == mpi) RAISE(OUT_OF_MEMORY);
- memset(mpi, 0, sizeof(*mpi));
-
- // First two bytes are big-endian count of bits in MPI
- if (length - *idx < 2) RAISE(BUFFER_OVERFLOW);
- mpi->bits = ((msg[*idx] << 8) | msg[*idx + 1]);
-
- mpi->count = (mpi->bits+7)/8;
- LOG_PRINT("MPI Bits: %u\n", mpi->bits);
-
- // Allocate space for MPI data
- mpi->data = malloc(mpi->count + 2);
- if (NULL == mpi->data) RAISE(OUT_OF_MEMORY);
-
- // Copy data from input buffer to mpi buffer
- memcpy(mpi->data, msg+*idx, mpi->count + 2);
- *idx += mpi->count + 1;
-
- return mpi;
-}
#include <stdio.h>
#include <stdint.h>
-#include "gcrypt.h"
-
-#define LOG_PRINT(fmt, ...) do {\
- if (debug_log_enabled) {\
- fprintf(stderr, "SPGP [%s():%d]: " fmt, \
- __FUNCTION__, __LINE__, ## __VA_ARGS__);\
- } } while(0)
-extern uint8_t debug_log_enabled;
typedef struct spgp_packet_header_struct spgp_pkt_header_t;
typedef struct spgp_packet_struct spgp_packet_t;
typedef struct spgp_session_packet_struct spgp_session_pkt_t;
typedef struct spgp_literal_packet_struct spgp_literal_pkt_t;
-struct spgp_packet_header_struct {
- spgp_packet_t *parent;
- uint32_t contentLength;
- uint8_t rawTagByte;
- uint8_t isNewFormat;
- uint8_t type;
- uint8_t headerLength;
- uint8_t isPartial;
-};
-
-struct spgp_packet_struct {
- spgp_pkt_header_t *header;
- union {
- spgp_public_pkt_t *pub;
- spgp_secret_pkt_t *secret;
- spgp_userid_pkt_t *userid;
- spgp_session_pkt_t *session;
- spgp_literal_pkt_t *literal;
- } c;
- spgp_packet_t *next;
- spgp_packet_t *prev;
-};
-
-struct spgp_mpi_struct {
- uint8_t *data;
- uint32_t bits;
- uint32_t count;
- spgp_mpi_t *next;
-};
-
-struct spgp_literal_packet_struct {
- char *filename;
- char *data;
- uint32_t dataLen;
- uint32_t filenameLen;
-};
-
-struct spgp_userid_packet_struct {
- uint8_t *data;
-};
-
-struct spgp_session_packet_struct {
- uint8_t keyid[8];
- uint8_t version;
- uint8_t algo;
- uint8_t symAlgo;
- uint32_t keylen;
- char *key;
- spgp_mpi_t *mpi1;
- spgp_mpi_t *mpi2;
-};
-
-struct spgp_public_packet_struct {
-// This is public key stuff
- uint8_t version;
- uint32_t creationTime;
- uint8_t asymAlgo;
- spgp_mpi_t *mpiHead;
- uint8_t mpiCount;
- uint8_t *fingerprint;
-} __attribute__((packed));
-
-struct spgp_secret_packet_struct {
-// This is public key stuff
- spgp_public_pkt_t pub;
-// This is secret key stuff
- uint8_t isDecrypted;
- uint8_t s2kType;
- uint8_t s2kEncryption;
- uint8_t s2kSpecifier;
- uint8_t s2kHashAlgo;
- uint8_t *s2kSalt;
- uint8_t s2kSaltLength;
- uint8_t s2kCount;
- uint8_t *encryptedData;
- uint32_t encryptedDataLength;
- uint8_t *key;
- uint32_t keyLength;
- uint8_t *iv;
- uint8_t ivLength;
-} __attribute__((packed));
-typedef enum {
- GENERIC_ERROR = 0x100,
- OUT_OF_MEMORY,
- INVALID_HEADER,
- FORMAT_UNSUPPORTED,
- INVALID_ARGS,
- BUFFER_OVERFLOW,
- INCOMPLETE_PACKET,
- DECRYPT_FAILED,
- GCRY_ERROR,
- KEYCHAIN_ERROR,
- ZLIB_ERROR,
-} spgp_error_t;
-
-typedef enum {
- PKT_TYPE_SESSION = 1,
- PKT_TYPE_SIGNATURE = 2,
- PKT_TYPE_SECRET_KEY = 5,
- PKT_TYPE_PUBLIC_KEY = 6,
- PKT_TYPE_SECRET_SUBKEY = 7,
- PKT_TYPE_COMPRESSED_DATA = 8,
- PKT_TYPE_LITERAL_DATA = 11,
- PKT_TYPE_USER_ID = 13,
- PKT_TYPE_PUBLIC_SUBKEY = 14,
- PKT_TYPE_SYM_ENC_INT_DATA = 18,
-} spgp_pkt_type_t;
-
-typedef enum {
- ASYM_ALGO_RSA = 1,
- ASYM_ALGO_RSA_ENCRYPT = 2,
- ASYM_ALGO_RSA_SIGN = 3,
- ASYM_ALGO_ELGAMAL = 16,
- ASYM_ALGO_DSA = 17,
-} spgp_asym_algo_t;
-
-typedef enum {
- SYM_ALGO_PLAINTEXT = 0,
- SYM_ALGO_IDEA,
- SYM_ALGO_3DES,
- SYM_ALGO_CAST5,
- SYM_ALGO_BLOWFISH,
- SYM_ALGO_AES128,
- SYM_ALGO_AES192,
- SYM_ALGO_AES256,
- SYM_ALGO_TWOFISH,
-} spgp_sym_algo_t;
-
-typedef enum {
- HASH_ALGO_MD5 = 1,
- HASH_ALGO_SHA1,
- HASH_ALGO_RIPEMD160,
- HASH_ALGO_SHA256,
- HASH_ALGO_SHA384,
- HASH_ALGO_SHA512,
- HASH_ALGO_SHA224,
-} spgp_hash_algo_t;
-
-typedef enum {
- COMPRESSION_UNCOMPRESSED = 0,
- COMPRESSION_ZIP,
- COMPRESSION_ZLIB,
- COMPRESSION_BZIP2,
-} spgp_compression_t;
+/**
+ * Break a binary OpenPGP message into decoded packets.
+ *
+ * @param message Binary OpenPGP message to analyze
+ * @param length Length of |message|
+ * @return Linked list of decoded PGP packets, or NULL on failure
+ */
+spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length);
-typedef enum {
- S2K_TYPE_SIMPLE = 0,
- S2K_TYPE_SALTED,
- S2K_TYPE_RESERVED,
- S2K_TYPE_ITERATED,
-} spgp_s2k_type_t;
-spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length);
-uint8_t spgp_load_keychain_with_keys(spgp_packet_t *msg);
+/**
+ * Decrypt all secret keys found in |msg| with given passphrase.
+ *
+ * @param msg Linked list of PGP packets
+ * @param passphrase String to use as decryption passphrase. No NUL termination.
+ * @param length Length of passphrase.
+ * @return 0 for success, non-0 for failure.
+ */
uint8_t spgp_decrypt_all_secret_keys(spgp_packet_t *msg,
uint8_t *passphrase, uint32_t length);
+
+/**
+ * Frees all dynamic resources associated with |pkt|.
+ */
void spgp_free_packet(spgp_packet_t **pkt);
+/**
+ * Get last error code
+ *
+ * @return Value of last error
+ */
uint32_t spgp_err(void);
+
+/**
+ * Return a string describing error code |err|.
+ *
+ * @return String describing error code |err|
+ */
const char *spgp_err_str(uint32_t err);
+/**
+ * Return true if debugging enabled, false otherwise.
+ *
+ * @return 0 if logging disabled, non-zero if logging enabled.
+ */
uint8_t spgp_debug_log_enabled(void);
+
+/**
+ * Enables debug logging to stderr
+ *
+ * @param enable 0 if logging should be off, 1 if logging should be on.
+ */
void spgp_debug_log_set(uint8_t enable);
#define _PACKET_H
+/*
+ * packet_private.h
+ * simplepgp
+ *
+ * Created by Trevor Bentley on 11/11/11.
+ *
+ * Copyright 2011 Trevor Bentley
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _PACKET_PRIVATE_H
+
+#include "packet.h"
+#include "gcrypt.h"
+
+#include <stdio.h>
+#include <setjmp.h>
+
+
+/**********************************************************************
+**
+** MACROS
+**
+***********************************************************************/
+#pragma mark Macros
+
+#define RAISE(err) do { \
+ _spgp_err = (err); \
+ LOG_PRINT("raise 0x%X\n",_spgp_err); \
+ longjmp(exception,_spgp_err); \
+ } while(0)
+
+#define SAFE_IDX_INCREMENT(idx,max) \
+ do{ \
+ if (++(idx)>=(max)) {\
+ RAISE(BUFFER_OVERFLOW);\
+ } \
+ } while(0)
+
+#define LOG_PRINT(fmt, ...) do {\
+ if (debug_log_enabled) {\
+ fprintf(stderr, "SPGP [%s():%d]: " fmt, \
+ __FUNCTION__, __LINE__, ## __VA_ARGS__);\
+ } } while(0)
+
+
+extern uint8_t debug_log_enabled;
+extern uint32_t _spgp_err;
+extern jmp_buf exception;
+
+
+struct spgp_packet_header_struct {
+ spgp_packet_t *parent;
+ uint32_t contentLength;
+ uint8_t rawTagByte;
+ uint8_t isNewFormat;
+ uint8_t type;
+ uint8_t headerLength;
+ uint8_t isPartial;
+};
+
+struct spgp_packet_struct {
+ spgp_pkt_header_t *header;
+ union {
+ spgp_public_pkt_t *pub;
+ spgp_secret_pkt_t *secret;
+ spgp_userid_pkt_t *userid;
+ spgp_session_pkt_t *session;
+ spgp_literal_pkt_t *literal;
+ } c;
+ spgp_packet_t *next;
+ spgp_packet_t *prev;
+};
+
+struct spgp_mpi_struct {
+ uint8_t *data;
+ uint32_t bits;
+ uint32_t count;
+ spgp_mpi_t *next;
+};
+
+struct spgp_literal_packet_struct {
+ char *filename;
+ char *data;
+ uint32_t dataLen;
+ uint32_t filenameLen;
+};
+
+struct spgp_userid_packet_struct {
+ uint8_t *data;
+};
+
+struct spgp_session_packet_struct {
+ uint8_t keyid[8];
+ uint8_t version;
+ uint8_t algo;
+ uint8_t symAlgo;
+ uint32_t keylen;
+ char *key;
+ spgp_mpi_t *mpi1;
+ spgp_mpi_t *mpi2;
+};
+
+struct spgp_public_packet_struct {
+// This is public key stuff
+ uint8_t version;
+ uint32_t creationTime;
+ uint8_t asymAlgo;
+ spgp_mpi_t *mpiHead;
+ uint8_t mpiCount;
+ uint8_t *fingerprint;
+} __attribute__((packed));
+
+struct spgp_secret_packet_struct {
+// This is public key stuff
+ spgp_public_pkt_t pub;
+// This is secret key stuff
+ uint8_t isDecrypted;
+ uint8_t s2kType;
+ uint8_t s2kEncryption;
+ uint8_t s2kSpecifier;
+ uint8_t s2kHashAlgo;
+ uint8_t *s2kSalt;
+ uint8_t s2kSaltLength;
+ uint8_t s2kCount;
+ uint8_t *encryptedData;
+ uint32_t encryptedDataLength;
+ uint8_t *key;
+ uint32_t keyLength;
+ uint8_t *iv;
+ uint8_t ivLength;
+} __attribute__((packed));
+
+typedef enum {
+ GENERIC_ERROR = 0x100,
+ OUT_OF_MEMORY,
+ INVALID_HEADER,
+ FORMAT_UNSUPPORTED,
+ INVALID_ARGS,
+ BUFFER_OVERFLOW,
+ INCOMPLETE_PACKET,
+ DECRYPT_FAILED,
+ GCRY_ERROR,
+ KEYCHAIN_ERROR,
+ ZLIB_ERROR,
+} spgp_error_t;
+
+typedef enum {
+ PKT_TYPE_SESSION = 1,
+ PKT_TYPE_SIGNATURE = 2,
+ PKT_TYPE_SECRET_KEY = 5,
+ PKT_TYPE_PUBLIC_KEY = 6,
+ PKT_TYPE_SECRET_SUBKEY = 7,
+ PKT_TYPE_COMPRESSED_DATA = 8,
+ PKT_TYPE_LITERAL_DATA = 11,
+ PKT_TYPE_USER_ID = 13,
+ PKT_TYPE_PUBLIC_SUBKEY = 14,
+ PKT_TYPE_SYM_ENC_INT_DATA = 18,
+} spgp_pkt_type_t;
+
+typedef enum {
+ ASYM_ALGO_RSA = 1,
+ ASYM_ALGO_RSA_ENCRYPT = 2,
+ ASYM_ALGO_RSA_SIGN = 3,
+ ASYM_ALGO_ELGAMAL = 16,
+ ASYM_ALGO_DSA = 17,
+} spgp_asym_algo_t;
+
+typedef enum {
+ SYM_ALGO_PLAINTEXT = 0,
+ SYM_ALGO_IDEA,
+ SYM_ALGO_3DES,
+ SYM_ALGO_CAST5,
+ SYM_ALGO_BLOWFISH,
+ SYM_ALGO_AES128,
+ SYM_ALGO_AES192,
+ SYM_ALGO_AES256,
+ SYM_ALGO_TWOFISH,
+} spgp_sym_algo_t;
+
+typedef enum {
+ HASH_ALGO_MD5 = 1,
+ HASH_ALGO_SHA1,
+ HASH_ALGO_RIPEMD160,
+ HASH_ALGO_SHA256,
+ HASH_ALGO_SHA384,
+ HASH_ALGO_SHA512,
+ HASH_ALGO_SHA224,
+} spgp_hash_algo_t;
+
+typedef enum {
+ COMPRESSION_UNCOMPRESSED = 0,
+ COMPRESSION_ZIP,
+ COMPRESSION_ZLIB,
+ COMPRESSION_BZIP2,
+} spgp_compression_t;
+
+typedef enum {
+ S2K_TYPE_SIMPLE = 0,
+ S2K_TYPE_SALTED,
+ S2K_TYPE_RESERVED,
+ S2K_TYPE_ITERATED,
+} spgp_s2k_type_t;
+
+
+#define _PACKET_PRIVATE_H
+#endif
#ifndef _PACKET_TEST_H
#include "packet.h"
+#include "packet_private.h"
#include <stdint.h>
#include <stdio.h>
+/*
+ * util.c
+ * simplepgp
+ *
+ * Created by Trevor Bentley on 11/11/11.
+ *
+ * Copyright 2011 Trevor Bentley
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "util.h"
+
+uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo) {
+ switch (pgpalgo) {
+ case 1: return GCRY_CIPHER_IDEA;
+ case 2: return GCRY_CIPHER_3DES;
+ case 3: return GCRY_CIPHER_CAST5;
+ case 4: return GCRY_CIPHER_BLOWFISH;
+ case 7: return GCRY_CIPHER_AES128;
+ case 8: return GCRY_CIPHER_AES192;
+ case 9: return GCRY_CIPHER_AES256;
+ case 10:return GCRY_CIPHER_TWOFISH;
+ default: return 0xFF;
+ }
+}
+
+uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo) {
+ size_t ivlen = 0;
+ if (gcry_cipher_algo_info(spgp_pgp_to_gcrypt_symmetric_algo(algo),
+ GCRYCTL_GET_BLKLEN,
+ NULL,
+ &ivlen) != 0)
+ RAISE(FORMAT_UNSUPPORTED);
+ return ivlen;
+}
+
+uint8_t spgp_salt_length_for_hash_algo(uint8_t algo) {
+ if (algo == HASH_ALGO_SHA1) return 8;
+ else RAISE(FORMAT_UNSUPPORTED); // not implemented
+ return 0;
+}
+
+/*
+ * util.h
+ * simplepgp
+ *
+ * Created by Trevor Bentley on 11/11/11.
+ *
+ * Copyright 2011 Trevor Bentley
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _UTIL_H
+
+#include "packet_private.h"
+
+uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo);
+
+uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo);
+
+uint8_t spgp_salt_length_for_hash_algo(uint8_t algo);
+
+#define _UTIL_H
+#endif