summary history branches tags files
commit:7e8d38dc900a4cfce79fd6b97660059b60d4460d
author:mrmekon
committer:mrmekon
date:Thu Nov 3 11:14:30 2011 -0400
parents:68899a086deacb5aaf0250a30581ef27b397f1fb
User ID packets added.
diff --git a/simplepgp.xcodeproj/trevor.mode1v3 b/simplepgp.xcodeproj/trevor.mode1v3
line changes: +14/-13
index 7423f70..827dfc8
--- a/simplepgp.xcodeproj/trevor.mode1v3
+++ b/simplepgp.xcodeproj/trevor.mode1v3
@@ -280,7 +280,7 @@
 								</array>
 							</array>
 							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {186, 852}}</string>
+							<string>{{0, 0}, {186, 696}}</string>
 						</dict>
 						<key>PBXTopSmartGroupGIDs</key>
 						<array/>
@@ -292,14 +292,14 @@
 					<key>GeometryConfiguration</key>
 					<dict>
 						<key>Frame</key>
-						<string>{{0, 0}, {203, 870}}</string>
+						<string>{{0, 0}, {203, 714}}</string>
 						<key>GroupTreeTableConfiguration</key>
 						<array>
 							<string>MainColumn</string>
 							<real>186</real>
 						</array>
 						<key>RubberWindowFrame</key>
-						<string>-1654 497 1299 911 -1680 385 1680 1050 </string>
+						<string>-1348 610 1095 755 -1680 385 1680 1050 </string>
 					</dict>
 					<key>Module</key>
 					<string>PBXSmartGroupTreeModule</string>
@@ -329,7 +329,7 @@
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>69269FAE1462141200F69705</string>
+										<string>6926A0C71462E29800F69705</string>
 										<key>history</key>
 										<array>
 											<string>69868BD11460F42D004C5D9B</string>
@@ -337,8 +337,9 @@
 											<string>69868C931460F7C3004C5D9B</string>
 											<string>69269F5214620FC500F69705</string>
 											<string>69269F5314620FC500F69705</string>
-											<string>69269F8A1462131300F69705</string>
-											<string>69269F8B1462131300F69705</string>
+											<string>69269FBE14623A5A00F69705</string>
+											<string>6926A0B01462E1BE00F69705</string>
+											<string>6926A0B11462E1BE00F69705</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
@@ -350,14 +351,14 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {1091, 779}}</string>
+								<string>{{0, 0}, {887, 623}}</string>
 								<key>RubberWindowFrame</key>
-								<string>-1654 497 1299 911 -1680 385 1680 1050 </string>
+								<string>-1348 610 1095 755 -1680 385 1680 1050 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>779pt</string>
+							<string>623pt</string>
 						</dict>
 						<dict>
 							<key>ContentConfiguration</key>
@@ -370,9 +371,9 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 784}, {1091, 86}}</string>
+								<string>{{0, 628}, {887, 86}}</string>
 								<key>RubberWindowFrame</key>
-								<string>-1654 497 1299 911 -1680 385 1680 1050 </string>
+								<string>-1348 610 1095 755 -1680 385 1680 1050 </string>
 							</dict>
 							<key>Module</key>
 							<string>XCDetailModule</string>
@@ -381,7 +382,7 @@
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>1091pt</string>
+					<string>887pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
@@ -542,7 +543,7 @@
 		<string>/Users/trevor/Documents/Cocoa Projects/libsimplepgp/simplepgp.xcodeproj</string>
 	</array>
 	<key>WindowString</key>
-	<string>-1654 497 1299 911 -1680 385 1680 1050 </string>
+	<string>-1348 610 1095 755 -1680 385 1680 1050 </string>
 	<key>WindowToolsV3</key>
 	<array>
 		<dict>

diff --git a/simplepgp.xcodeproj/trevor.pbxuser b/simplepgp.xcodeproj/trevor.pbxuser
line changes: +572/-26
index 67f66be..4ec7c8e
--- a/simplepgp.xcodeproj/trevor.pbxuser
+++ b/simplepgp.xcodeproj/trevor.pbxuser
@@ -9,7 +9,7 @@
 		breakpoints = (
 			69868C9D14618450004C5D9B /* packet.c:9 */,
 			69868EE41461AA6F004C5D9B /* packet.c:207 */,
-			69269F4E14620FC200F69705 /* packet.c:167 */,
+			69269F4E14620FC200F69705 /* packet.c:175 */,
 		);
 		codeSenseManager = 69868AD51460E35F004C5D9B /* Code sense */;
 		perUserDictionary = {
@@ -18,7 +18,7 @@
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					852,
+					648,
 					20,
 					48,
 					43,
@@ -247,6 +247,55 @@
 			69269FA01462137A00F69705 /* PBXTextBookmark */ = 69269FA01462137A00F69705 /* PBXTextBookmark */;
 			69269FA71462140200F69705 /* PBXTextBookmark */ = 69269FA71462140200F69705 /* PBXTextBookmark */;
 			69269FAE1462141200F69705 /* PBXTextBookmark */ = 69269FAE1462141200F69705 /* PBXTextBookmark */;
+			69269FB1146237EA00F69705 /* PBXTextBookmark */ = 69269FB1146237EA00F69705 /* PBXTextBookmark */;
+			69269FB2146237EA00F69705 /* PBXTextBookmark */ = 69269FB2146237EA00F69705 /* PBXTextBookmark */;
+			69269FB3146237EA00F69705 /* PBXTextBookmark */ = 69269FB3146237EA00F69705 /* PBXTextBookmark */;
+			69269FBD14623A5A00F69705 /* PBXTextBookmark */ = 69269FBD14623A5A00F69705 /* PBXTextBookmark */;
+			69269FBE14623A5A00F69705 /* PBXTextBookmark */ = 69269FBE14623A5A00F69705 /* PBXTextBookmark */;
+			69269FBF14623A5A00F69705 /* PBXTextBookmark */ = 69269FBF14623A5A00F69705 /* PBXTextBookmark */;
+			69269FC014623A5A00F69705 /* PBXTextBookmark */ = 69269FC014623A5A00F69705 /* PBXTextBookmark */;
+			69269FC414623C6700F69705 /* PBXTextBookmark */ = 69269FC414623C6700F69705 /* PBXTextBookmark */;
+			69269FC514623C6700F69705 /* PBXTextBookmark */ = 69269FC514623C6700F69705 /* PBXTextBookmark */;
+			69269FC614623C6700F69705 /* PBXTextBookmark */ = 69269FC614623C6700F69705 /* PBXTextBookmark */;
+			69269FCA14623E3800F69705 /* PBXTextBookmark */ = 69269FCA14623E3800F69705 /* PBXTextBookmark */;
+			69269FD014623EB800F69705 /* PBXTextBookmark */ = 69269FD014623EB800F69705 /* PBXTextBookmark */;
+			69269FD214623F6800F69705 /* PBXTextBookmark */ = 69269FD214623F6800F69705 /* PBXTextBookmark */;
+			69269FD814623F8800F69705 /* PBXTextBookmark */ = 69269FD814623F8800F69705 /* PBXTextBookmark */;
+			69269FE61462402B00F69705 /* PBXTextBookmark */ = 69269FE61462402B00F69705 /* PBXTextBookmark */;
+			69269FE71462402B00F69705 /* PBXTextBookmark */ = 69269FE71462402B00F69705 /* PBXTextBookmark */;
+			69269FEB1462413F00F69705 /* PBXTextBookmark */ = 69269FEB1462413F00F69705 /* PBXTextBookmark */;
+			69269FF21462414C00F69705 /* PBXTextBookmark */ = 69269FF21462414C00F69705 /* PBXTextBookmark */;
+			69269FF91462423A00F69705 /* PBXTextBookmark */ = 69269FF91462423A00F69705 /* PBXTextBookmark */;
+			6926A0001462426D00F69705 /* PBXTextBookmark */ = 6926A0001462426D00F69705 /* PBXTextBookmark */;
+			6926A007146242ED00F69705 /* PBXTextBookmark */ = 6926A007146242ED00F69705 /* PBXTextBookmark */;
+			6926A00E146243CA00F69705 /* PBXTextBookmark */ = 6926A00E146243CA00F69705 /* PBXTextBookmark */;
+			6926A0151462445400F69705 /* PBXTextBookmark */ = 6926A0151462445400F69705 /* PBXTextBookmark */;
+			6926A01C1462449200F69705 /* PBXTextBookmark */ = 6926A01C1462449200F69705 /* PBXTextBookmark */;
+			6926A0231462454F00F69705 /* PBXTextBookmark */ = 6926A0231462454F00F69705 /* PBXTextBookmark */;
+			6926A02A1462457A00F69705 /* PBXTextBookmark */ = 6926A02A1462457A00F69705 /* PBXTextBookmark */;
+			6926A033146245AE00F69705 /* PBXTextBookmark */ = 6926A033146245AE00F69705 /* PBXTextBookmark */;
+			6926A03A1462D95600F69705 /* PBXTextBookmark */ = 6926A03A1462D95600F69705 /* PBXTextBookmark */;
+			6926A0411462D98D00F69705 /* PBXTextBookmark */ = 6926A0411462D98D00F69705 /* PBXTextBookmark */;
+			6926A0461462D9B900F69705 /* PBXTextBookmark */ = 6926A0461462D9B900F69705 /* PBXTextBookmark */;
+			6926A04A1462DAB900F69705 /* PBXTextBookmark */ = 6926A04A1462DAB900F69705 /* PBXTextBookmark */;
+			6926A0501462DAE200F69705 /* PBXTextBookmark */ = 6926A0501462DAE200F69705 /* PBXTextBookmark */;
+			6926A0571462DC7E00F69705 /* PBXTextBookmark */ = 6926A0571462DC7E00F69705 /* PBXTextBookmark */;
+			6926A0641462DCB200F69705 /* PBXTextBookmark */ = 6926A0641462DCB200F69705 /* PBXTextBookmark */;
+			6926A06B1462DCD300F69705 /* PBXTextBookmark */ = 6926A06B1462DCD300F69705 /* PBXTextBookmark */;
+			6926A0721462DEE000F69705 /* PBXTextBookmark */ = 6926A0721462DEE000F69705 /* PBXTextBookmark */;
+			6926A0791462DF3A00F69705 /* PBXTextBookmark */ = 6926A0791462DF3A00F69705 /* PBXTextBookmark */;
+			6926A0801462DF6000F69705 /* PBXTextBookmark */ = 6926A0801462DF6000F69705 /* PBXTextBookmark */;
+			6926A0871462DF7800F69705 /* PBXTextBookmark */ = 6926A0871462DF7800F69705 /* PBXTextBookmark */;
+			6926A0901462DFB200F69705 /* PBXTextBookmark */ = 6926A0901462DFB200F69705 /* PBXTextBookmark */;
+			6926A09D1462E09C00F69705 /* PBXTextBookmark */ = 6926A09D1462E09C00F69705 /* PBXTextBookmark */;
+			6926A09E1462E09C00F69705 /* PBXTextBookmark */ = 6926A09E1462E09C00F69705 /* PBXTextBookmark */;
+			6926A09F1462E09C00F69705 /* PBXTextBookmark */ = 6926A09F1462E09C00F69705 /* PBXTextBookmark */;
+			6926A0B01462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B01462E1BE00F69705 /* PBXTextBookmark */;
+			6926A0B11462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B11462E1BE00F69705 /* PBXTextBookmark */;
+			6926A0B21462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B21462E1BE00F69705 /* PBXTextBookmark */;
+			6926A0BB1462E1D900F69705 /* PBXTextBookmark */ = 6926A0BB1462E1D900F69705 /* PBXTextBookmark */;
+			6926A0C21462E20500F69705 /* PBXTextBookmark */ = 6926A0C21462E20500F69705 /* PBXTextBookmark */;
+			6926A0C71462E29800F69705 /* PBXTextBookmark */ = 6926A0C71462E29800F69705 /* PBXTextBookmark */;
 			69868BD11460F42D004C5D9B = 69868BD11460F42D004C5D9B /* PBXTextBookmark */;
 			69868BD91460F468004C5D9B = 69868BD91460F468004C5D9B /* PBXTextBookmark */;
 			69868C931460F7C3004C5D9B = 69868C931460F7C3004C5D9B /* PBXTextBookmark */;
@@ -1978,21 +2027,28 @@
 			sepNavVisRange = "{0, 1356}";
 		};
 	};
+	69269F2214620D0F00F69705 /* packet_test.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {826, 591}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 291}";
+		};
+	};
 	69269F2314620D0F00F69705 /* packet.c */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1030, 8294}}";
-			sepNavSelRange = "{4835, 0}";
-			sepNavVisRange = "{4194, 1805}";
+			sepNavIntBoundsRect = "{{0, 0}, {826, 8879}}";
+			sepNavSelRange = "{15034, 0}";
+			sepNavVisRange = "{14619, 1552}";
 		};
 	};
 	69269F2414620D0F00F69705 /* packet.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1030, 1729}}";
-			sepNavSelRange = "{1161, 7}";
-			sepNavVisRange = "{313, 1144}";
+			sepNavIntBoundsRect = "{{0, 0}, {826, 1820}}";
+			sepNavSelRange = "{960, 0}";
+			sepNavVisRange = "{264, 985}";
 		};
 	};
-	69269F4E14620FC200F69705 /* packet.c:167 */ = {
+	69269F4E14620FC200F69705 /* packet.c:175 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
@@ -2004,9 +2060,9 @@
 		functionName = "spgp_decode_message()";
 		hitCount = 0;
 		ignoreCount = 0;
-		lineNumber = 167;
+		lineNumber = 175;
 		location = duckdog;
-		modificationTime = 341971971.281257;
+		modificationTime = 342024710.159102;
 		originalNumberOfMultipleMatches = 1;
 		state = 2;
 	};
@@ -2035,7 +2091,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 168";
 		rLen = 0;
-		rLoc = 4835;
+		rLoc = 5131;
 		rType = 0;
 		vrLen = 1715;
 		vrLoc = 3704;
@@ -2045,7 +2101,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 168";
 		rLen = 0;
-		rLoc = 4835;
+		rLoc = 5131;
 		rType = 0;
 		vrLen = 1715;
 		vrLoc = 3704;
@@ -2055,7 +2111,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 168";
 		rLen = 0;
-		rLoc = 4835;
+		rLoc = 5131;
 		rType = 0;
 		vrLen = 1715;
 		vrLoc = 3704;
@@ -2065,7 +2121,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 171";
 		rLen = 0;
-		rLoc = 4921;
+		rLoc = 5217;
 		rType = 0;
 		vrLen = 1762;
 		vrLoc = 3553;
@@ -2075,7 +2131,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 171";
 		rLen = 0;
-		rLoc = 4921;
+		rLoc = 5217;
 		rType = 0;
 		vrLen = 1762;
 		vrLoc = 3553;
@@ -2085,7 +2141,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 168";
 		rLen = 0;
-		rLoc = 4835;
+		rLoc = 5131;
 		rType = 0;
 		vrLen = 1766;
 		vrLoc = 3553;
@@ -2095,7 +2151,7 @@
 		fRef = 69269F2414620D0F00F69705 /* packet.h */;
 		name = "packet.h: 59";
 		rLen = 7;
-		rLoc = 1161;
+		rLoc = 1307;
 		rType = 0;
 		vrLen = 1144;
 		vrLoc = 313;
@@ -2105,7 +2161,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 209";
 		rLen = 0;
-		rLoc = 6071;
+		rLoc = 6367;
 		rType = 0;
 		vrLen = 1536;
 		vrLoc = 4539;
@@ -2115,7 +2171,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 197";
 		rLen = 0;
-		rLoc = 5617;
+		rLoc = 5913;
 		rType = 0;
 		vrLen = 1317;
 		vrLoc = 5272;
@@ -2125,7 +2181,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 200";
 		rLen = 0;
-		rLoc = 5757;
+		rLoc = 6053;
 		rType = 0;
 		vrLen = 1337;
 		vrLoc = 5272;
@@ -2135,7 +2191,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 235";
 		rLen = 0;
-		rLoc = 6521;
+		rLoc = 7104;
 		rType = 0;
 		vrLen = 1333;
 		vrLoc = 5302;
@@ -2145,7 +2201,7 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 211";
 		rLen = 0;
-		rLoc = 6031;
+		rLoc = 6327;
 		rType = 0;
 		vrLen = 1370;
 		vrLoc = 5279;
@@ -2155,11 +2211,501 @@
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 167";
 		rLen = 0;
-		rLoc = 4835;
+		rLoc = 5131;
 		rType = 0;
 		vrLen = 1805;
 		vrLoc = 4194;
 	};
+	69269FB1146237EA00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2414620D0F00F69705 /* packet.h */;
+		name = "packet.h: 48";
+		rLen = 0;
+		rLoc = 946;
+		rType = 0;
+		vrLen = 849;
+		vrLoc = 781;
+	};
+	69269FB2146237EA00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 379";
+		rLen = 0;
+		rLoc = 11582;
+		rType = 0;
+		vrLen = 1458;
+		vrLoc = 10100;
+	};
+	69269FB3146237EA00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 382";
+		rLen = 0;
+		rLoc = 12216;
+		rType = 0;
+		vrLen = 1447;
+		vrLoc = 10529;
+	};
+	69269FBD14623A5A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2414620D0F00F69705 /* packet.h */;
+		name = "packet.h: 51";
+		rLen = 0;
+		rLoc = 961;
+		rType = 0;
+		vrLen = 872;
+		vrLoc = 870;
+	};
+	69269FBE14623A5A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2214620D0F00F69705 /* packet_test.h */;
+		name = "packet_test.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 291;
+		vrLoc = 0;
+	};
+	69269FBF14623A5A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 369";
+		rLen = 0;
+		rLoc = 11344;
+		rType = 0;
+		vrLen = 1552;
+		vrLoc = 10245;
+	};
+	69269FC014623A5A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 390";
+		rLen = 0;
+		rLoc = 11582;
+		rType = 0;
+		vrLen = 1554;
+		vrLoc = 10245;
+	};
+	69269FC414623C6700F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2414620D0F00F69705 /* packet.h */;
+		name = "packet.h: 51";
+		rLen = 0;
+		rLoc = 961;
+		rType = 0;
+		vrLen = 1003;
+		vrLoc = 162;
+	};
+	69269FC514623C6700F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 376";
+		rLen = 0;
+		rLoc = 11640;
+		rType = 0;
+		vrLen = 1419;
+		vrLoc = 10245;
+	};
+	69269FC614623C6700F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 383";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1448;
+		vrLoc = 10536;
+	};
+	69269FCA14623E3800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 156";
+		rLen = 0;
+		rLoc = 4522;
+		rType = 0;
+		vrLen = 1441;
+		vrLoc = 10487;
+	};
+	69269FD014623EB800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 389";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1430;
+		vrLoc = 10361;
+	};
+	69269FD214623F6800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 389";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1431;
+		vrLoc = 10361;
+	};
+	69269FD814623F8800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 389";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1431;
+		vrLoc = 10361;
+	};
+	69269FE61462402B00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 389";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1658;
+		vrLoc = 14213;
+	};
+	69269FE71462402B00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 389";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1658;
+		vrLoc = 14213;
+	};
+	69269FEB1462413F00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 500";
+		rLen = 0;
+		rLoc = 15909;
+		rType = 0;
+		vrLen = 1664;
+		vrLoc = 14213;
+	};
+	69269FF21462414C00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 500";
+		rLen = 0;
+		rLoc = 15909;
+		rType = 0;
+		vrLen = 1664;
+		vrLoc = 14213;
+	};
+	69269FF91462423A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 500";
+		rLen = 0;
+		rLoc = 15909;
+		rType = 0;
+		vrLen = 1377;
+		vrLoc = 10784;
+	};
+	6926A0001462426D00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 377";
+		rLen = 0;
+		rLoc = 11380;
+		rType = 0;
+		vrLen = 1425;
+		vrLoc = 10784;
+	};
+	6926A007146242ED00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 158";
+		rLen = 0;
+		rLoc = 4522;
+		rType = 0;
+		vrLen = 1595;
+		vrLoc = 3882;
+	};
+	6926A00E146243CA00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 386";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1542;
+		vrLoc = 10812;
+	};
+	6926A0151462445400F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 385";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1588;
+		vrLoc = 10812;
+	};
+	6926A01C1462449200F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 385";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1590;
+		vrLoc = 10812;
+	};
+	6926A0231462454F00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 385";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1591;
+		vrLoc = 10812;
+	};
+	6926A02A1462457A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 385";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1591;
+		vrLoc = 10812;
+	};
+	6926A033146245AE00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 380";
+		rLen = 0;
+		rLoc = 11657;
+		rType = 0;
+		vrLen = 1542;
+		vrLoc = 10812;
+	};
+	6926A03A1462D95600F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 387";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1543;
+		vrLoc = 10812;
+	};
+	6926A0411462D98D00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 387";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1542;
+		vrLoc = 10812;
+	};
+	6926A0461462D9B900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 385";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1578;
+		vrLoc = 10812;
+	};
+	6926A04A1462DAB900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 386";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1542;
+		vrLoc = 10812;
+	};
+	6926A0501462DAE200F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 15";
+		rLen = 0;
+		rLoc = 259;
+		rType = 0;
+		vrLen = 1433;
+		vrLoc = 10541;
+	};
+	6926A0571462DC7E00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 379";
+		rLen = 0;
+		rLoc = 11344;
+		rType = 0;
+		vrLen = 1398;
+		vrLoc = 10541;
+	};
+	6926A0641462DCB200F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 390";
+		rLen = 0;
+		rLoc = 11931;
+		rType = 0;
+		vrLen = 1408;
+		vrLoc = 10541;
+	};
+	6926A06B1462DCD300F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 387";
+		rLen = 0;
+		rLoc = 11778;
+		rType = 0;
+		vrLen = 1395;
+		vrLoc = 10541;
+	};
+	6926A0721462DEE000F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 387";
+		rLen = 0;
+		rLoc = 11778;
+		rType = 0;
+		vrLen = 1400;
+		vrLoc = 10541;
+	};
+	6926A0791462DF3A00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 388";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1398;
+		vrLoc = 10541;
+	};
+	6926A0801462DF6000F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 388";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1412;
+		vrLoc = 10541;
+	};
+	6926A0871462DF7800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 388";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1412;
+		vrLoc = 10541;
+	};
+	6926A0901462DFB200F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 388";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1442;
+		vrLoc = 10541;
+	};
+	6926A09D1462E09C00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2414620D0F00F69705 /* packet.h */;
+		name = "packet.h: 48";
+		rLen = 0;
+		rLoc = 960;
+		rType = 0;
+		vrLen = 1047;
+		vrLoc = 204;
+	};
+	6926A09E1462E09C00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 388";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1442;
+		vrLoc = 10541;
+	};
+	6926A09F1462E09C00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 394";
+		rLen = 0;
+		rLoc = 11889;
+		rType = 0;
+		vrLen = 1443;
+		vrLoc = 10541;
+	};
+	6926A0B01462E1BE00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2414620D0F00F69705 /* packet.h */;
+		name = "packet.h: 48";
+		rLen = 0;
+		rLoc = 960;
+		rType = 0;
+		vrLen = 985;
+		vrLoc = 264;
+	};
+	6926A0B11462E1BE00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 233";
+		rLen = 0;
+		rLoc = 6814;
+		rType = 0;
+		vrLen = 1202;
+		vrLoc = 5740;
+	};
+	6926A0B21462E1BE00F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 408";
+		rLen = 0;
+		rLoc = 12122;
+		rType = 0;
+		vrLen = 1545;
+		vrLoc = 11119;
+	};
+	6926A0BB1462E1D900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 408";
+		rLen = 0;
+		rLoc = 12207;
+		rType = 0;
+		vrLen = 1553;
+		vrLoc = 11119;
+	};
+	6926A0C21462E20500F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 520";
+		rLen = 0;
+		rLoc = 15909;
+		rType = 0;
+		vrLen = 1557;
+		vrLoc = 14733;
+	};
+	6926A0C71462E29800F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 498";
+		rLen = 0;
+		rLoc = 15034;
+		rType = 0;
+		vrLen = 1552;
+		vrLoc = 14619;
+	};
 	69868AD41460E35F004C5D9B /* Source Control */ = {
 		isa = PBXSourceControlManager;
 		fallbackIsa = XCSourceControlManager;
@@ -2265,7 +2811,7 @@
 		ignoreCount = 0;
 		lineNumber = 9;
 		location = duckdog;
-		modificationTime = 341971971.279537;
+		modificationTime = 342024710.1573;
 		originalNumberOfMultipleMatches = 1;
 		state = 2;
 	};
@@ -2343,7 +2889,7 @@
 		hitCount = 0;
 		ignoreCount = 0;
 		lineNumber = 207;
-		modificationTime = 341971971.280463;
+		modificationTime = 342024710.158496;
 		originalNumberOfMultipleMatches = 0;
 		state = 2;
 	};

diff --git a/src/packet.c b/src/packet.c
line changes: +54/-2
index 0c1d5dd..764d9ba
--- a/src/packet.c
+++ b/src/packet.c
@@ -11,6 +11,8 @@
 #include <stdio.h>
 #include <setjmp.h>
 #include "gcrypt.h"
+#include <wchar.h>
+#include <locale.h>
 
 
 /**********************************************************************
@@ -65,7 +67,10 @@ static uint8_t debug_log_enabled = 0;
 
 static uint8_t spgp_parse_header(uint8_t *msg, uint32_t *idx, 
 														uint32_t length, spgp_packet_t *pkt);
-                            
+
+static uint8_t spgp_parse_user_id(uint8_t *msg, uint32_t *idx, 
+          												uint32_t length, spgp_packet_t *pkt);
+                                                              
 static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, 
           													 uint32_t length, spgp_packet_t *pkt);
                                      
@@ -149,6 +154,9 @@ spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) {
     
     // Decode packet contents based on the type marked in its header
     switch (pkt->header->type) {
+    	case PKT_TYPE_USER_ID:
+      	spgp_parse_user_id(message, &idx, length, pkt);
+        break;
       case PKT_TYPE_SECRET_KEY:
       case PKT_TYPE_SECRET_SUBKEY:
         spgp_parse_secret_key(message, &idx, length, pkt);
@@ -220,6 +228,16 @@ void spgp_free_packet(spgp_packet_t **pkt) {
     	free((*pkt)->c.secret->iv);
       (*pkt)->c.secret->iv = NULL;
     }
+    free((*pkt)->c.secret);
+    (*pkt)->c.secret = NULL;
+  }
+  else if ((*pkt)->header->type == PKT_TYPE_USER_ID &&
+  				 (*pkt)->c.userid->data != NULL) {
+  	free((*pkt)->c.userid->data);
+    (*pkt)->c.userid->data = NULL;
+    
+    free((*pkt)->c.userid);
+    (*pkt)->c.userid = NULL;
   }
   
   // release header
@@ -364,6 +382,35 @@ static uint8_t spgp_parse_header(uint8_t *msg, uint32_t *idx,
 	return 0;
 }
 
+static uint8_t spgp_parse_user_id(uint8_t *msg, uint32_t *idx, 
+          												uint32_t length, spgp_packet_t *pkt) {
+	spgp_userid_pkt_t userid;
+
+  LOG_PRINT("Parsing user id.\n");
+
+	// Make sure we have enough bytes remaining for the copy
+  if (length - *idx < pkt->header->contentLength) RAISE(BUFFER_OVERFLOW);
+  
+  // Allocate space for buffer, plus one byte for NUL terminator
+	userid.data = malloc(sizeof(*(userid.data))*pkt->header->contentLength + 1);
+  if (NULL == userid.data) RAISE(OUT_OF_MEMORY);
+  
+  // Copy bytes from input to structure, and add a NUL terminator
+  memcpy(userid.data, msg+*idx, pkt->header->contentLength);
+  userid.data[pkt->header->contentLength] = '\0';
+  *idx += pkt->header->contentLength - 1;
+  
+  // Copy local structure into packet
+  pkt->c.userid = malloc(sizeof(*(pkt->c.userid)));
+  if (NULL == pkt->c.userid) RAISE(OUT_OF_MEMORY);
+  memcpy(pkt->c.userid, &userid, sizeof(userid));
+
+  setlocale(LC_CTYPE, "en_US.UTF-8");
+  wprintf(L"USER ID: %s\n", pkt->c.userid->data);
+  
+	return 0;                                     
+}
+
 static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, 
           													 uint32_t length, spgp_packet_t *pkt) {
   spgp_secret_pkt_t secret;
@@ -448,7 +495,7 @@ static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx,
   
   // If it's not encrypted, we can just read the secret MPIs
   if (!secret.s2kEncryption) {
-  	spgp_read_all_public_mpis(msg, idx, length, &secret);
+  	spgp_read_all_secret_mpis(msg, idx, length, &secret);
   }
   // If it is encrypted, just store it for now.  We'll decrypt later.
   else {
@@ -467,6 +514,11 @@ static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx,
     LOG_PRINT("Stored %u encrypted bytes.\n", remaining);
     // This is the end of the data, so we do NOT do a final idx increment
   }
+  
+  pkt->c.secret = malloc(sizeof(*(pkt->c.secret)));
+  if (NULL == pkt->c.secret) RAISE(OUT_OF_MEMORY);
+  memcpy(pkt->c.secret, &secret, sizeof(secret));
+  
 	return 0;
 }
 

diff --git a/src/packet.h b/src/packet.h
line changes: +6/-0
index cc78d86..52eafae
--- a/src/packet.h
+++ b/src/packet.h
@@ -17,6 +17,7 @@ typedef struct spgp_packet_header_struct spgp_pkt_header_t;
 typedef struct spgp_packet_struct spgp_packet_t;
 typedef struct spgp_mpi_struct spgp_mpi_t;
 typedef struct spgp_secret_packet_struct spgp_secret_pkt_t;
+typedef struct spgp_userid_packet_struct spgp_userid_pkt_t;
 
 struct spgp_packet_header_struct {
 	spgp_packet_t *parent;
@@ -31,6 +32,7 @@ struct spgp_packet_struct {
 	spgp_pkt_header_t *header;
   union {
   	spgp_secret_pkt_t *secret;
+    spgp_userid_pkt_t *userid;
   } c;
 	spgp_packet_t *next;	
 };
@@ -42,6 +44,10 @@ struct spgp_mpi_struct {
 	spgp_mpi_t *next;
 };
 
+struct spgp_userid_packet_struct {
+	uint8_t *data;
+};
+
 struct spgp_secret_packet_struct {
 // This is public key stuff
 	uint8_t version;