Bug 235467. Mark binary keys as binary types when persisting data.
This commit is contained in:
		| @@ -1436,6 +1436,8 @@ public class MiCasa : Store | ||||
|                 Secret secret = ss.GetSecret(entrySecretID.Text); | ||||
|                 value = secret.GetKeyValue(selected); | ||||
|                  | ||||
|                  | ||||
|  | ||||
|                 // strip of header data | ||||
|                 byte[] baValue = System.Text.Encoding.ASCII.GetBytes(value); | ||||
|                 byte[] baTarget = new byte[baValue.Length - 16]; | ||||
| @@ -1458,8 +1460,19 @@ public class MiCasa : Store | ||||
|                 Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogDecode", null); | ||||
|                 gxmlTemp.Autoconnect(this); | ||||
|  | ||||
|                 // display values                 | ||||
|                 textviewClear.Buffer.Text = value; | ||||
|                 // display decoded value                 | ||||
|                 //textviewClear.Buffer.Text = value; | ||||
|                 char[] array = value.ToCharArray(); | ||||
|  | ||||
|                 try | ||||
|                 { | ||||
|                     byte[] bytes = Convert.FromBase64CharArray(array, 0, array.Length); | ||||
|                     textviewClear.Buffer.Text = System.Text.Encoding.ASCII.GetString(bytes); | ||||
|                 } | ||||
|                 catch (Exception e) | ||||
|                 { | ||||
|                     textviewClear.Buffer.Text = e.ToString(); | ||||
|                 } | ||||
|                           | ||||
|                 // hook up button handlers | ||||
|                 bttnDecode.Clicked += new EventHandler(bttnDecode_Clicked); | ||||
|   | ||||
							
								
								
									
										6
									
								
								CASA/micasad/cache/KeyValue.cs
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								CASA/micasad/cache/KeyValue.cs
									
									
									
									
										vendored
									
									
								
							| @@ -194,6 +194,7 @@ namespace sscs.cache | ||||
|         {             | ||||
|             byte[] baValueClear = DecyptValueAsBytes();             | ||||
|             return Encoding.Default.GetString(baValueClear);                                     | ||||
|             //return Encoding.Default.GetString(baValueClear);                                     | ||||
|         } | ||||
| 				 | ||||
| 		private byte[] DecyptValueAsBytes() | ||||
| @@ -217,6 +218,11 @@ namespace sscs.cache | ||||
| 			return m_iValueType; | ||||
| 		} | ||||
|  | ||||
|         internal void SetValueType(int iValueType) | ||||
|         { | ||||
|             m_iValueType = iValueType; | ||||
|         } | ||||
|  | ||||
|         public string ToXML() | ||||
|         { | ||||
|             StringBuilder sb = new StringBuilder(); | ||||
|   | ||||
							
								
								
									
										6
									
								
								CASA/micasad/cache/Secret.cs
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								CASA/micasad/cache/Secret.cs
									
									
									
									
										vendored
									
									
								
							| @@ -169,9 +169,9 @@ namespace sscs.cache | ||||
|  | ||||
|                     sb.Append(kv.Key); | ||||
|                     sb.Append("="); | ||||
| 					if (kv.GetValueType() ==(KeyValue.VALUE_TYPE_BINARY)) | ||||
| 						sb.Append("BINARY - Do not change"); | ||||
| 					else | ||||
| 					//if (kv.GetValueType() ==(KeyValue.VALUE_TYPE_BINARY)) | ||||
| 					//	sb.Append("BINARY - Do not change"); | ||||
| 					//else | ||||
| 					    sb.Append(kv.GetValue()); | ||||
|                     sb.Append('\n'); | ||||
|                 } | ||||
|   | ||||
| @@ -156,6 +156,7 @@ namespace sscs.constants | ||||
|         internal static string versionAttr = "version"; | ||||
|         internal static string keyChainNode = "KeyChain"; | ||||
|         internal static string idAttr       = "id"; | ||||
|         internal static string binaryAttr   = "binary"; | ||||
|         internal static string secretNode   = "Secret"; | ||||
|         internal static string valueNode    = "Value"; | ||||
|         internal static string timeNode     = "Time"; | ||||
|   | ||||
| @@ -478,20 +478,40 @@ namespace sscs.lss | ||||
|                             { | ||||
|                                 attrColl = keyNode.Attributes; | ||||
|                                 string key; | ||||
|                                 string sIsBinary = ""; | ||||
|                                 try | ||||
|                                 { | ||||
|                                     key = (attrColl[XmlConsts.idAttr]).Value; | ||||
|                                      | ||||
|                                 } | ||||
|                                 catch (Exception) | ||||
|                                 { | ||||
|                                     // LinkedKey node, continue | ||||
|                                     continue; | ||||
|                                 } | ||||
|  | ||||
|                                 // get binary attribute, if set | ||||
|                                 try | ||||
|                                 { | ||||
|                                     sIsBinary = attrColl.GetNamedItem(XmlConsts.binaryAttr).Value; | ||||
|                                 } | ||||
|                                 catch  | ||||
|                                 { | ||||
|                                     sIsBinary = "false"; | ||||
|                                 }  | ||||
|  | ||||
|                                 xpath = "descendant::" + XmlConsts.keyValueNode; | ||||
|                                 XmlNode keyValNode = keyNode.SelectSingleNode(xpath); | ||||
|                                 string keyValue = keyValNode.InnerText; | ||||
|                                 secret.SetKeyValue(key, keyValue, false); | ||||
|                                  | ||||
|                                 // set binary type if set | ||||
|                                 if ((sIsBinary != null) && (sIsBinary.Equals("true"))) | ||||
|                                 { | ||||
|                                     KeyValue kv = secret.GetKeyValue(key); | ||||
|                                     kv.SetValueType(KeyValue.VALUE_TYPE_BINARY); | ||||
|                                 } | ||||
|  | ||||
|                                 // get time attributes on this key/value  | ||||
|                                 XmlNode timeNodeKey = keyNode.SelectSingleNode("descendant::" + XmlConsts.timeNode); | ||||
|                                 if (timeNodeKey != null) | ||||
| @@ -766,9 +786,16 @@ namespace sscs.lss | ||||
|                         while (etor.MoveNext()) | ||||
|                         { | ||||
|                             string sKey = (string)etor.Key; | ||||
|                             string value = secret.GetKeyValue(sKey).GetValue(); | ||||
|                             KeyValue kv = secret.GetKeyValue(sKey); | ||||
|  | ||||
|                             string value = kv.GetValue(); | ||||
|                             writer.WriteStartElement(XmlConsts.keyNode); | ||||
|                             writer.WriteAttributeString(XmlConsts.idAttr, sKey); | ||||
|                             if (kv.GetValueType() == KeyValue.VALUE_TYPE_BINARY) | ||||
|                             { | ||||
|                                 writer.WriteAttributeString(XmlConsts.binaryAttr, "true"); | ||||
|                             } | ||||
|                                                          | ||||
|                             writer.WriteStartElement(XmlConsts.keyValueNode); | ||||
|  | ||||
|                             if (bSaveValues) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user