Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

This commit was manufactured by cvs2svn to create tag 'MCS_1_0_3'.

svn path=/tags/MCS_1_0_3/mcs/; revision=34814
  • Loading branch information...
commit 081f745091ca69547afa8c929862a2f5a533c206 16 parents 120479c + 4e4824a + 6f302f5 + 5a3ff91 + 361a871 + f7ffe59 + 0fae05d + 61362ce + a0ea59a + 5023609 + a865c14 + 098549d + 11d2121 + 4798cef + d1c5847 + 2d0b540
nobody authored
Showing with 6,538 additions and 1,491 deletions.
  1. +10 −0 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/ChangeLog
  2. +136 −136 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Constants.cs
  3. +1 −1  mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Interaction.cs
  4. +66 −37 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Strings.cs
  5. +3 −0  mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog
  6. +2 −2 mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs
  7. +2 −1  mcs/class/Mono.Posix/Mono.Posix.dll.sources
  8. +4 −0 mcs/class/Mono.Posix/Mono.Posix/ChangeLog
  9. +78 −0 mcs/class/Mono.Posix/Mono.Posix/PeerCred.cs
  10. +4 −0 mcs/class/Mono.Security/ChangeLog
  11. +143 −41 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeBase.cs
  12. +81 −42 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeDeformatter.cs
  13. +5 −6 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeFormatter.cs
  14. +6 −0 mcs/class/Mono.Security/Mono.Security.Authenticode/ChangeLog
  15. +5 −0 mcs/class/Mono.Security/Mono.Security.Cryptography/ChangeLog
  16. +8 −2 mcs/class/Mono.Security/Mono.Security.Cryptography/RSAManaged.cs
  17. +21 −0 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog
  18. +8 −7 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs
  19. +7 −3 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs
  20. +2 −2 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs
  21. +5 −0 mcs/class/Mono.Security/Mono.Security.X509.Extensions/ChangeLog
  22. +17 −0 mcs/class/Mono.Security/Mono.Security.X509.Extensions/KeyUsageExtension.cs
  23. +11 −0 mcs/class/Mono.Security/Mono.Security.X509/ChangeLog
  24. +2 −0  mcs/class/Mono.Security/Mono.Security.X509/X501Name.cs
  25. +4 −5 mcs/class/Mono.Security/Mono.Security.X509/X509Chain.cs
  26. +22 −9 mcs/class/Mono.Security/Mono.Security.X509/X509Store.cs
  27. +12 −0 mcs/class/Mono.Security/Mono.Security.X509/X520Attributes.cs
  28. +1 −0  mcs/class/Mono.Security/Mono.Security_test.dll.sources
  29. +724 −0 mcs/class/Mono.Security/Test/Mono.Security.Authenticode/AuthenticodeDeformatterTest.cs
  30. +4 −0 mcs/class/Mono.Security/Test/Mono.Security.Authenticode/ChangeLog
  31. +3 −0  mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog
  32. +1 −1  mcs/class/System.Data/Mono.Data.SqlExpressions/Tokenizer.cs
  33. +7 −1 mcs/class/System.Data/System.Data.Common/ChangeLog
  34. +2 −2 mcs/class/System.Data/System.Data.Common/DataContainer.cs
  35. +1 −1  mcs/class/System.Data/System.Data.Common/DbDataRecord.cs
  36. +44 −0 mcs/class/System.Data/System.Data.Odbc/ChangeLog
  37. +41 −10 mcs/class/System.Data/System.Data.Odbc/OdbcCommand.cs
  38. +20 −8 mcs/class/System.Data/System.Data.Odbc/OdbcConnection.cs
  39. +33 −26 mcs/class/System.Data/System.Data.Odbc/OdbcDataReader.cs
  40. +3 −0  mcs/class/System.Data/System.Data.Odbc/OdbcParameter.cs
  41. +1 −1  mcs/class/System.Data/System.Data.Odbc/OdbcType.cs
  42. +12 −0 mcs/class/System.Data/System.Data.SqlClient/ChangeLog
  43. +12 −9 mcs/class/System.Data/System.Data.SqlClient/SqlCommand.cs
  44. +3 −0  mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs
  45. +2 −1  mcs/class/System.Data/System.Data.SqlClient/SqlTransaction.cs
  46. +54 −0 mcs/class/System.Data/System.Data/ChangeLog
  47. +6 −2 mcs/class/System.Data/System.Data/DataRow.cs
  48. +1 −1  mcs/class/System.Data/System.Data/DataRowCollection.cs
  49. +98 −23 mcs/class/System.Data/System.Data/DataSet.cs
  50. +1 −31 mcs/class/System.Data/System.Data/DataTable.cs
  51. +2 −0  mcs/class/System.Data/System.Data/XmlConstants.cs
  52. +10 −0 mcs/class/System.Data/Test/ChangeLog
  53. +100 −0 mcs/class/System.Data/Test/MSSqlTestBed.cs
  54. +9 −6 mcs/class/System.Data/Test/MySqlTestBed.cs
  55. +3 −0  mcs/class/System.Data/Test/System.Data.Common/ChangeLog
  56. +104 −0 mcs/class/System.Data/Test/System.Data.Common/DataContainerTest.cs
  57. +21 −0 mcs/class/System.Data/Test/System.Data.Odbc/ChangeLog
  58. +113 −0 mcs/class/System.Data/Test/System.Data.Odbc/OdbcCommandTest.cs
  59. +101 −0 mcs/class/System.Data/Test/System.Data.Odbc/OdbcDataReaderTest.cs
  60. +99 −0 mcs/class/System.Data/Test/System.Data.SqlClient/SqlCommandTest.cs
  61. +85 −0 mcs/class/System.Data/Test/System.Data.SqlClient/SqlTransactionTest.cs
  62. +12 −0 mcs/class/System.Data/Test/System.Data/ChangeLog
  63. +37 −0 mcs/class/System.Data/Test/System.Data/DataRowTest.cs
  64. +69 −0 mcs/class/System.Data/Test/System.Data/DataSetTest.cs
  65. +24 −0 mcs/class/System.Drawing/System.Drawing/ChangeLog
  66. +57 −10 mcs/class/System.Drawing/System.Drawing/Font.cs
  67. +9 −4 mcs/class/System.Drawing/System.Drawing/Graphics.cs
  68. +8 −7 mcs/class/System.Drawing/System.Drawing/gdipFunctions.cs
  69. +5 −0 mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog
  70. +3 −0  mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs
  71. +11 −0 mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog
  72. +17 −11 mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs
  73. +5 −0 mcs/class/System.Security/System.Security.Cryptography.Xml/ChangeLog
  74. +3 −2 mcs/class/System.Security/System.Security.Cryptography.Xml/Signature.cs
  75. +5 −0 mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
  76. +1 −1  mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
  77. +2 −2 mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
  78. +15 −0 mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
  79. +0 −5 mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
  80. +9 −27 mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
  81. +1 −7 mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
  82. +4 −0 mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs
  83. +6 −0 mcs/class/System.Web.Services/System.Web.Services/ChangeLog
  84. +1 −5 mcs/class/System.Web.Services/System.Web.Services/WebService.cs
  85. +4 −0 mcs/class/System.Web.Services/Test/standalone/ChangeLog
  86. +6 −0 mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx
  87. +2 −2 mcs/class/System.Web/System.Web.Caching/Cache.cs
  88. +1 −1  mcs/class/System.Web/System.Web.Caching/CacheEntry.cs
  89. +2 −2 mcs/class/System.Web/System.Web.Caching/CacheExpires.cs
  90. +5 −0 mcs/class/System.Web/System.Web.Caching/ChangeLog
  91. +1 −1  mcs/class/System.Web/System.Web.Caching/ExpiresBuckets.cs
  92. +27 −4 mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
  93. +6 −3 mcs/class/System.Web/System.Web.Compilation/AspParser.cs
  94. +2 −2 mcs/class/System.Web/System.Web.Compilation/BaseCompiler.cs
  95. +39 −12 mcs/class/System.Web/System.Web.Compilation/CachingCompiler.cs
  96. +39 −0 mcs/class/System.Web/System.Web.Compilation/ChangeLog
  97. +5 −0 mcs/class/System.Web/System.Web.Compilation/Location.cs
  98. +10 −5 mcs/class/System.Web/System.Web.Compilation/WebServiceCompiler.cs
  99. +5 −0 mcs/class/System.Web/System.Web.Configuration/ChangeLog
  100. +8 −6 mcs/class/System.Web/System.Web.Configuration/WebConfigurationSettings.cs
  101. +9 −0 mcs/class/System.Web/System.Web.Handlers/ChangeLog
  102. +25 −5 mcs/class/System.Web/System.Web.Handlers/TraceHandler.cs
  103. +13 −0 mcs/class/System.Web/System.Web.Mail/ChangeLog
  104. +4 −1 mcs/class/System.Web/System.Web.Mail/MailMessage.cs
  105. +13 −0 mcs/class/System.Web/System.Web.Mail/MailMessageWrapper.cs
  106. +8 −1 mcs/class/System.Web/System.Web.Mail/SmtpClient.cs
  107. +9 −0 mcs/class/System.Web/System.Web.Security/ChangeLog
  108. +1 −1  mcs/class/System.Web/System.Web.Security/FormsAuthentication.cs
  109. +6 −1 mcs/class/System.Web/System.Web.Security/FormsAuthenticationModule.cs
  110. +15 −0 mcs/class/System.Web/System.Web.SessionState/ChangeLog
  111. +1 −1  mcs/class/System.Web/System.Web.SessionState/HttpSessionState.cs
  112. +2 −2 mcs/class/System.Web/System.Web.SessionState/SessionStateModule.cs
  113. +3 −3 mcs/class/System.Web/System.Web.UI.WebControls/AdRotator.cs
  114. +1 −1  mcs/class/System.Web/System.Web.UI.WebControls/BaseCompareValidator.cs
  115. +2 −0  mcs/class/System.Web/System.Web.UI.WebControls/BaseValidator.cs
  116. +32 −2 mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
  117. +17 −13 mcs/class/System.Web/System.Web.UI.WebControls/RadioButton.cs
  118. +3 −1 mcs/class/System.Web/System.Web.UI.WebControls/TableStyle.cs
  119. +2 −4 mcs/class/System.Web/System.Web.UI.WebControls/Xml.cs
  120. +25 −5 mcs/class/System.Web/System.Web.UI.WebControls/XmlBuilder.cs
  121. +42 −0 mcs/class/System.Web/System.Web.UI/ChangeLog
  122. +5 −5 mcs/class/System.Web/System.Web.UI/Control.cs
  123. +50 −46 mcs/class/System.Web/System.Web.UI/LiteralControl.cs
  124. +15 −3 mcs/class/System.Web/System.Web.UI/Page.cs
  125. +0 −14 mcs/class/System.Web/System.Web.UI/PageParser.cs
  126. +5 −2 mcs/class/System.Web/System.Web.UI/SimpleWebHandlerParser.cs
  127. +6 −0 mcs/class/System.Web/System.Web.UI/TemplateControl.cs
  128. +3 −1 mcs/class/System.Web/System.Web.UI/TemplateParser.cs
  129. +5 −0 mcs/class/System.Web/System.Web.Util/ChangeLog
  130. +5 −1 mcs/class/System.Web/System.Web.Util/UrlUtils.cs
  131. +118 −0 mcs/class/System.Web/System.Web/ChangeLog
  132. +23 −10 mcs/class/System.Web/System.Web/HttpApplication.cs
  133. +31 −35 mcs/class/System.Web/System.Web/HttpApplicationFactory.cs
  134. +5 −5 mcs/class/System.Web/System.Web/HttpContext.cs
  135. +4 −1 mcs/class/System.Web/System.Web/HttpCookie.cs
  136. +6 −2 mcs/class/System.Web/System.Web/HttpRequest.cs
  137. +4 −4 mcs/class/System.Web/System.Web/HttpResponse.cs
  138. +46 −43 mcs/class/System.Web/System.Web/HttpRuntime.cs
  139. +28 −18 mcs/class/System.Web/System.Web/HttpServerUtility.cs
  140. +17 −0 mcs/class/System.Web/System.Web/HttpStaticObjectsCollection.cs
  141. +4 −4 mcs/class/System.Web/System.Web/HttpUtility.cs
  142. +1 −1  mcs/class/System.Web/System.Web/HttpValueCollection.cs
  143. +37 −15 mcs/class/System.Web/System.Web/QueueManager.cs
  144. +1 −1  mcs/class/System.Web/System.Web/TimeoutManager.cs
  145. +12 −1 mcs/class/System.Web/System.Web/TraceContext.cs
  146. +7 −0 mcs/class/System.XML/Mono.Xml.XPath/ChangeLog
  147. +10 −5 mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs
  148. +9 −0 mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog
  149. +2 −3 mcs/class/System.XML/Mono.Xml.Xsl/HtmlEmitter.cs
  150. +11 −9 mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs
  151. +49 −3 mcs/class/System.XML/System.Xml.Schema/BuiltInDatatype.cs
  152. +11 −0 mcs/class/System.XML/System.Xml.Schema/ChangeLog
  153. +6 −4 mcs/class/System.XML/System.Xml.Schema/SchemaDataValueType.cs
  154. +4 −1 mcs/class/System.XML/System.Xml.Schema/XmlSchema.cs
  155. +16 −0 mcs/class/System.XML/System.Xml.Serialization/ChangeLog
  156. +1 −1  mcs/class/System.XML/System.Xml.Serialization/CodeIdentifier.cs
  157. +1 −0  mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs
  158. +4 −0 mcs/class/System.XML/System.Xml.Serialization/XmlCustomFormatter.cs
  159. +2 −0  mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs
  160. +54 −0 mcs/class/System.XML/System.Xml/ChangeLog
  161. +7 −8 mcs/class/System.XML/System.Xml/XmlAttribute.cs
  162. +3 −5 mcs/class/System.XML/System.Xml/XmlElement.cs
  163. +2 −2 mcs/class/System.XML/System.Xml/XmlNode.cs
  164. +65 −28 mcs/class/System.XML/System.Xml/XmlTextReader.cs
  165. +15 −12 mcs/class/System.XML/System.Xml/XmlTextWriter.cs
  166. +1 −1  mcs/class/System.XML/System.Xml/XmlWriter.cs
  167. +2 −2 mcs/class/System/Microsoft.CSharp/CSharpCodeCompiler.cs
  168. +4 −1 mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs
  169. +10 −0 mcs/class/System/Microsoft.CSharp/ChangeLog
  170. +11 −0 mcs/class/System/System.CodeDom.Compiler/ChangeLog
  171. +38 −6 mcs/class/System/System.CodeDom.Compiler/CodeGenerator.cs
  172. +5 −0 mcs/class/System/System.CodeDom/ChangeLog
  173. +4 −0 mcs/class/System/System.CodeDom/CodeEntryPointMethod.cs
  174. +1 −1  mcs/class/System/System.ComponentModel/AttributeCollection.cs
  175. +5 −0 mcs/class/System/System.ComponentModel/ChangeLog
  176. +14 −0 mcs/class/System/System.Diagnostics/ChangeLog
  177. +42 −1 mcs/class/System/System.Diagnostics/Process.cs
  178. +21 −0 mcs/class/System/System.IO/ChangeLog
  179. +25 −5 mcs/class/System/System.IO/DefaultWatcher.cs
  180. +5 −5 mcs/class/System/System.IO/FAMWatcher.cs
  181. +351 −0 mcs/class/System/System.IO/KeventWatcher.cs
  182. +26 −0 mcs/class/System/System.Net.Sockets/ChangeLog
  183. +49 −12 mcs/class/System/System.Net.Sockets/Socket.cs
  184. +79 −0 mcs/class/System/System.Net/ChangeLog
  185. +17 −18 mcs/class/System/System.Net/Cookie.cs
  186. +15 −15 mcs/class/System/System.Net/HttpWebRequest.cs
  187. +97 −61 mcs/class/System/System.Net/HttpWebResponse.cs
  188. +6 −0 mcs/class/System/System.Net/ServicePoint.cs
  189. +7 −1 mcs/class/System/System.Net/ServicePointManager.cs
  190. +110 −19 mcs/class/System/System.Net/WebConnection.cs
  191. +13 −2 mcs/class/System/System.Net/WebConnectionStream.cs
  192. +35 −25 mcs/class/System/System.Net/WebHeaderCollection.cs
  193. +1 −1  mcs/class/System/System.Net/WebProxy.cs
  194. +142 −42 mcs/class/corlib/Mono.Security.Authenticode/AuthenticodeBase.cs
  195. +81 −43 mcs/class/corlib/Mono.Security.Authenticode/AuthenticodeDeformatter.cs
  196. +5 −0 mcs/class/corlib/Mono.Security.Authenticode/ChangeLog
  197. +5 −0 mcs/class/corlib/Mono.Security.Cryptography/ChangeLog
  198. +6 −2 mcs/class/corlib/Mono.Security.Cryptography/RSAManaged.cs
  199. +4 −0 mcs/class/corlib/Mono.Security.X509/ChangeLog
  200. +3 −6 mcs/class/corlib/Mono.Security.X509/X509Chain.cs
  201. +10 −0 mcs/class/corlib/System.Collections/ChangeLog
  202. +22 −22 mcs/class/corlib/System.Collections/DictionaryBase.cs
  203. +3 −2 mcs/class/corlib/System.Collections/Hashtable.cs
  204. +4 −0 mcs/class/corlib/System.IO.IsolatedStorage/ChangeLog
  205. +1 −1  mcs/class/corlib/System.IO.IsolatedStorage/IsolatedStorageInfo.cs
  206. +48 −0 mcs/class/corlib/System.IO/ChangeLog
  207. +1 −1  mcs/class/corlib/System.IO/CheckPermission.cs
  208. +4 −2 mcs/class/corlib/System.IO/File.cs
  209. +1 −1  mcs/class/corlib/System.IO/FileInfo.cs
  210. +1 −1  mcs/class/corlib/System.IO/FileStream.cs
  211. +9 −2 mcs/class/corlib/System.IO/MonoIO.cs
  212. +0 −1  mcs/class/corlib/System.IO/Stream.cs
  213. +35 −8 mcs/class/corlib/System.IO/StreamWriter.cs
  214. +149 −0 mcs/class/corlib/System.IO/UnexceptionalStreamReader.cs
  215. +128 −0 mcs/class/corlib/System.IO/UnexceptionalStreamWriter.cs
  216. +8 −0 mcs/class/corlib/System.Reflection.Emit/AssemblyBuilder.cs
  217. +30 −0 mcs/class/corlib/System.Reflection.Emit/ChangeLog
  218. +18 −0 mcs/class/corlib/System.Reflection.Emit/CustomAttributeBuilder.cs
  219. +4 −3 mcs/class/corlib/System.Reflection.Emit/ModuleBuilder.cs
  220. +3 −2 mcs/class/corlib/System.Reflection.Emit/TypeBuilder.cs
  221. +9 −0 mcs/class/corlib/System.Reflection/ChangeLog
  222. +22 −1 mcs/class/corlib/System.Reflection/Module.cs
  223. +0 −25 mcs/class/corlib/System.Reflection/common.src
  224. +6 −0 mcs/class/corlib/System.Runtime.InteropServices/ChangeLog
  225. +1 −0  mcs/class/corlib/System.Runtime.InteropServices/UnmanagedType.cs
  226. +5 −0 mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog
  227. +1 −1  mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs
  228. +5 −0 mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
  229. +2 −5 mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
  230. +18 −0 mcs/class/corlib/System.Runtime.Remoting/ChangeLog
  231. +1 −1  mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs
  232. +2 −2 mcs/class/corlib/System.Runtime.Remoting/RemotingConfiguration.cs
  233. +43 −13 mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
  234. +7 −1 mcs/class/corlib/System.Runtime.Remoting/ServerIdentity.cs
  235. +4 −0 mcs/class/corlib/System.Security.Cryptography.X509Certificates/ChangeLog
  236. +17 −6 mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509Certificate.cs
  237. +6 −0 mcs/class/corlib/System.Security.Cryptography/ChangeLog
  238. +1 −5 mcs/class/corlib/System.Security.Cryptography/DES.cs
  239. +1 −5 mcs/class/corlib/System.Security.Cryptography/RC2.cs
  240. +1 −5 mcs/class/corlib/System.Security.Cryptography/TripleDES.cs
  241. +6 −0 mcs/class/corlib/System.Security.Permissions/ChangeLog
  242. +4 −3 mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs
  243. +17 −0 mcs/class/corlib/System.Threading/ChangeLog
  244. +14 −11 mcs/class/corlib/System.Threading/Thread.cs
  245. +6 −2 mcs/class/corlib/System.Threading/Timer.cs
  246. +8 −6 mcs/class/corlib/System/Activator.cs
  247. +2 −2 mcs/class/corlib/System/AppDomain.cs
  248. +65 −0 mcs/class/corlib/System/ChangeLog
  249. +3 −3 mcs/class/corlib/System/Console.cs
  250. +21 −8 mcs/class/corlib/System/Convert.cs
  251. +19 −1 mcs/class/corlib/System/DateTime.cs
  252. +4 −0 mcs/class/corlib/System/Double.cs
  253. +1 −1  mcs/class/corlib/System/Environment.cs
  254. +30 −17 mcs/class/corlib/System/MonoType.cs
  255. +1 −1  mcs/class/corlib/System/Random.cs
  256. +6 −1 mcs/class/corlib/System/Version.cs
  257. +4 −0 mcs/class/corlib/Test/System.Collections/ChangeLog
  258. +10 −1 mcs/class/corlib/Test/System.Collections/ComparerTest.cs
  259. +4 −0 mcs/class/corlib/Test/System.Reflection/ChangeLog
  260. +10 −0 mcs/class/corlib/Test/System/ChangeLog
  261. +11 −1 mcs/class/corlib/Test/System/ConvertTest.cs
  262. +6 −0 mcs/class/corlib/Test/System/VersionTest.cs
  263. +2 −0  mcs/class/corlib/corlib.dll.sources
  264. +1 −1  mcs/ilasm/AssemblyInfo.cs
  265. +1 −1  mcs/mcs/AssemblyInfo.cs
  266. +150 −6 mcs/mcs/ChangeLog
  267. +50 −12 mcs/mcs/assign.cs
  268. +3 −0  mcs/mcs/cfold.cs
  269. +6 −0 mcs/mcs/class.cs
  270. +23 −10 mcs/mcs/cs-parser.jay
  271. +2 −2 mcs/mcs/cs-tokenizer.cs
  272. +30 −48 mcs/mcs/delegate.cs
  273. +32 −3 mcs/mcs/ecore.cs
  274. +1 −0  mcs/mcs/enum.cs
  275. +43 −37 mcs/mcs/expression.cs
  276. +13 −11 mcs/mcs/iterators.cs
  277. +4 −4 mcs/mcs/namespace.cs
  278. +15 −2 mcs/mcs/statement.cs
  279. +1 −1  mcs/mcs/typemanager.cs
  280. +1 −1  mcs/nunit20/core/Makefile
  281. +1 −1  mcs/nunit20/framework/Makefile
  282. +1 −1  mcs/nunit20/util/Makefile
  283. +20 −0 mcs/tests/ChangeLog
  284. +4 −2 mcs/tests/Makefile
  285. +23 −0 mcs/tests/test-280.cs
  286. +33 −0 mcs/tests/test-283.cs
  287. +7 −0 mcs/tests/test-284.cs
  288. +14 −0 mcs/tests/test-290.cs
  289. +11 −0 mcs/tests/test-292.cs
  290. +16 −0 mcs/tools/mono-rpm-helpers/ChangeLog
  291. +7 −2 mcs/tools/mono-rpm-helpers/mono-find-provides/mono-find-provides.cs
  292. +2 −2 mcs/tools/mono-rpm-helpers/mono-find-requires/mono-find-requires.cs
  293. +15 −0 mcs/tools/mono-xsd/ChangeLog
  294. +34 −11 mcs/tools/mono-xsd/NewMonoXSD.cs
  295. +1 −1  mcs/tools/security/AssemblyInfo.cs
  296. +15 −0 mcs/tools/security/ChangeLog
  297. +6 −5 mcs/tools/security/MakeCert.cs
  298. +23 −11 mcs/tools/security/certmgr.cs
  299. +9 −3 mcs/tools/security/sn.cs
View
10 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/ChangeLog
@@ -1,3 +1,13 @@
+2004-10-05 Anirban Bhattacharjee <banirban@novell.com>
+ * Interaction.cs:
+ * Strings.cs :
+ Few important fixes
+
+2004-07-22 Jambunathan K <kjambunathan@novell.com>
+
+ * Constants.cs: Fixed definitions of vbCr, vbLf, vbCrLf and
+ vbNewLine
+
2004-06-24 Jambunathan K <kjambunathan@novell.com>
* RandomVBFile.cs: Fixed FileGet() for Date and Decimal types
* FileSystem.cs: Fixed ChDir, FileCopy
View
272 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Constants.cs
@@ -1,11 +1,11 @@
-//
-// Constants.cs
-//
-// Author:
-// Chris J Breisch (cjbreisch@altavista.net)
-//
-// (C) 2002 Chris J Breisch
-//
+//
+// Constants.cs
+//
+// Author:
+// Chris J Breisch (cjbreisch@altavista.net)
+//
+// (C) 2002 Chris J Breisch
+//
//
// Copyright (c) 2002-2003 Mainsoft Corporation.
@@ -30,131 +30,131 @@
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-
-using System;
-
-namespace Microsoft.VisualBasic {
- [Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute]
- sealed public class Constants {
- // Declarations
- public const System.Int32 vbObjectError = (System.Int32)(-2147221504);
- public const System.String vbCrLf = "\n\r";
- public const System.String vbNewLine = "\n\r";
- public const System.String vbCr = "\n";
- public const System.String vbLf = "\r";
- public const System.String vbBack = "\b";
- public const System.String vbFormFeed = "\f";
- public const System.String vbTab = "\t";
- public const System.String vbVerticalTab = "\v";
- public const System.String vbNullChar = "\0";
- public const System.String vbNullString = "";
-
- public const AppWinStyle vbHide = AppWinStyle.Hide;
- public const AppWinStyle vbNormalFocus = AppWinStyle.NormalFocus;
- public const AppWinStyle vbMinimizedFocus = AppWinStyle.MinimizedFocus;
- public const AppWinStyle vbMaximizedFocus = AppWinStyle.MaximizedFocus;
- public const AppWinStyle vbNormalNoFocus = AppWinStyle.NormalNoFocus;
- public const AppWinStyle vbMinimizedNoFocus = AppWinStyle.MinimizedNoFocus;
-
- public const CallType vbMethod = CallType.Method;
- public const CallType vbGet = CallType.Get;
- public const CallType vbLet = CallType.Let;
- public const CallType vbSet = CallType.Set;
-
- public const CompareMethod vbBinaryCompare = CompareMethod.Binary;
- public const CompareMethod vbTextCompare = CompareMethod.Text;
-
- public const DateFormat vbGeneralDate = DateFormat.GeneralDate;
- public const DateFormat vbLongDate = DateFormat.LongDate;
- public const DateFormat vbShortDate = DateFormat.ShortDate;
- public const DateFormat vbLongTime = DateFormat.LongTime;
- public const DateFormat vbShortTime = DateFormat.ShortTime;
-
- public const FirstDayOfWeek vbUseSystemDayOfWeek = FirstDayOfWeek.System;
- public const FirstDayOfWeek vbSunday = FirstDayOfWeek.Sunday;
- public const FirstDayOfWeek vbMonday = FirstDayOfWeek.Monday;
- public const FirstDayOfWeek vbTuesday = FirstDayOfWeek.Tuesday;
- public const FirstDayOfWeek vbWednesday = FirstDayOfWeek.Wednesday;
- public const FirstDayOfWeek vbThursday = FirstDayOfWeek.Thursday;
- public const FirstDayOfWeek vbFriday = FirstDayOfWeek.Friday;
- public const FirstDayOfWeek vbSaturday = FirstDayOfWeek.Saturday;
-
- public const FileAttribute vbNormal = FileAttribute.Normal;
- public const FileAttribute vbReadOnly = FileAttribute.ReadOnly;
- public const FileAttribute vbHidden = FileAttribute.Hidden;
- public const FileAttribute vbSystem = FileAttribute.System;
- public const FileAttribute vbVolume = FileAttribute.Volume;
- public const FileAttribute vbDirectory = FileAttribute.Directory;
- public const FileAttribute vbArchive = FileAttribute.Archive;
-
- public const FirstWeekOfYear vbUseSystem = FirstWeekOfYear.System;
- public const FirstWeekOfYear vbFirstJan1 = FirstWeekOfYear.Jan1;
- public const FirstWeekOfYear vbFirstFourDays = FirstWeekOfYear.FirstFourDays;
- public const FirstWeekOfYear vbFirstFullWeek = FirstWeekOfYear.FirstFullWeek;
-
- public const VbStrConv vbUpperCase = VbStrConv.UpperCase;
- public const VbStrConv vbLowerCase = VbStrConv.LowerCase;
- public const VbStrConv vbProperCase = VbStrConv.ProperCase;
- public const VbStrConv vbWide = VbStrConv.Wide;
- public const VbStrConv vbNarrow = VbStrConv.Narrow;
- public const VbStrConv vbKatakana = VbStrConv.Katakana;
- public const VbStrConv vbHiragana = VbStrConv.Hiragana;
- public const VbStrConv vbSimplifiedChinese = VbStrConv.SimplifiedChinese;
- public const VbStrConv vbTraditionalChinese = VbStrConv.TraditionalChinese;
- public const VbStrConv vbLinguisticCasing = VbStrConv.LinguisticCasing;
-
- public const TriState vbUseDefault = TriState.UseDefault;
- public const TriState vbTrue = TriState.True;
- public const TriState vbFalse = TriState.False;
-
- public const VariantType vbEmpty = VariantType.Empty;
- public const VariantType vbNull = VariantType.Null;
- public const VariantType vbInteger = VariantType.Integer;
- public const VariantType vbLong = VariantType.Long;
- public const VariantType vbSingle = VariantType.Single;
- public const VariantType vbDouble = VariantType.Double;
- public const VariantType vbCurrency = VariantType.Currency;
- public const VariantType vbDate = VariantType.Date;
- public const VariantType vbString = VariantType.String;
- public const VariantType vbObject = VariantType.Object;
- public const VariantType vbBoolean = VariantType.Boolean;
- public const VariantType vbVariant = VariantType.Variant;
- public const VariantType vbDecimal = VariantType.Decimal;
- public const VariantType vbByte = VariantType.Byte;
- public const VariantType vbUserDefinedType = VariantType.UserDefinedType;
- public const VariantType vbArray = VariantType.Array;
-
- public const MsgBoxResult vbOK = MsgBoxResult.OK;
- public const MsgBoxResult vbCancel = MsgBoxResult.Cancel;
- public const MsgBoxResult vbAbort = MsgBoxResult.Abort;
- public const MsgBoxResult vbRetry = MsgBoxResult.Retry;
- public const MsgBoxResult vbIgnore = MsgBoxResult.Ignore;
- public const MsgBoxResult vbYes = MsgBoxResult.Yes;
- public const MsgBoxResult vbNo = MsgBoxResult.No;
-
- public const MsgBoxStyle vbOKOnly = MsgBoxStyle.OKOnly;
- public const MsgBoxStyle vbOKCancel = MsgBoxStyle.OKCancel;
- public const MsgBoxStyle vbAbortRetryIgnore = MsgBoxStyle.AbortRetryIgnore;
- public const MsgBoxStyle vbYesNoCancel = MsgBoxStyle.YesNoCancel;
- public const MsgBoxStyle vbYesNo = MsgBoxStyle.YesNo;
- public const MsgBoxStyle vbRetryCancel = MsgBoxStyle.RetryCancel;
- public const MsgBoxStyle vbCritical = MsgBoxStyle.Critical;
- public const MsgBoxStyle vbQuestion = MsgBoxStyle.Question;
- public const MsgBoxStyle vbExclamation = MsgBoxStyle.Exclamation;
- public const MsgBoxStyle vbInformation = MsgBoxStyle.Information;
- public const MsgBoxStyle vbDefaultButton1 = MsgBoxStyle.DefaultButton1;
- public const MsgBoxStyle vbDefaultButton2 = MsgBoxStyle.DefaultButton2;
- public const MsgBoxStyle vbDefaultButton3 = MsgBoxStyle.DefaultButton3;
- public const MsgBoxStyle vbApplicationModal = MsgBoxStyle.ApplicationModal;
- public const MsgBoxStyle vbSystemModal = MsgBoxStyle.SystemModal;
- public const MsgBoxStyle vbMsgBoxHelp = MsgBoxStyle.MsgBoxHelp;
- public const MsgBoxStyle vbMsgBoxRight = MsgBoxStyle.MsgBoxRight;
- public const MsgBoxStyle vbMsgBoxRtlReading = MsgBoxStyle.MsgBoxRtlReading;
- public const MsgBoxStyle vbMsgBoxSetForeground = MsgBoxStyle.MsgBoxSetForeground;
-
- // Constructors
- // Properties
- // Methods
- // Events
- };
-}
+
+using System;
+
+namespace Microsoft.VisualBasic {
+ [Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute]
+ sealed public class Constants {
+ // Declarations
+ public const System.Int32 vbObjectError = (System.Int32)(-2147221504);
+ public const System.String vbCrLf = "\r\n";
+ public const System.String vbNewLine = "\r\n";
+ public const System.String vbCr = "\r";
+ public const System.String vbLf = "\n";
+ public const System.String vbBack = "\b";
+ public const System.String vbFormFeed = "\f";
+ public const System.String vbTab = "\t";
+ public const System.String vbVerticalTab = "\v";
+ public const System.String vbNullChar = "\0";
+ public const System.String vbNullString = "";
+
+ public const AppWinStyle vbHide = AppWinStyle.Hide;
+ public const AppWinStyle vbNormalFocus = AppWinStyle.NormalFocus;
+ public const AppWinStyle vbMinimizedFocus = AppWinStyle.MinimizedFocus;
+ public const AppWinStyle vbMaximizedFocus = AppWinStyle.MaximizedFocus;
+ public const AppWinStyle vbNormalNoFocus = AppWinStyle.NormalNoFocus;
+ public const AppWinStyle vbMinimizedNoFocus = AppWinStyle.MinimizedNoFocus;
+
+ public const CallType vbMethod = CallType.Method;
+ public const CallType vbGet = CallType.Get;
+ public const CallType vbLet = CallType.Let;
+ public const CallType vbSet = CallType.Set;
+
+ public const CompareMethod vbBinaryCompare = CompareMethod.Binary;
+ public const CompareMethod vbTextCompare = CompareMethod.Text;
+
+ public const DateFormat vbGeneralDate = DateFormat.GeneralDate;
+ public const DateFormat vbLongDate = DateFormat.LongDate;
+ public const DateFormat vbShortDate = DateFormat.ShortDate;
+ public const DateFormat vbLongTime = DateFormat.LongTime;
+ public const DateFormat vbShortTime = DateFormat.ShortTime;
+
+ public const FirstDayOfWeek vbUseSystemDayOfWeek = FirstDayOfWeek.System;
+ public const FirstDayOfWeek vbSunday = FirstDayOfWeek.Sunday;
+ public const FirstDayOfWeek vbMonday = FirstDayOfWeek.Monday;
+ public const FirstDayOfWeek vbTuesday = FirstDayOfWeek.Tuesday;
+ public const FirstDayOfWeek vbWednesday = FirstDayOfWeek.Wednesday;
+ public const FirstDayOfWeek vbThursday = FirstDayOfWeek.Thursday;
+ public const FirstDayOfWeek vbFriday = FirstDayOfWeek.Friday;
+ public const FirstDayOfWeek vbSaturday = FirstDayOfWeek.Saturday;
+
+ public const FileAttribute vbNormal = FileAttribute.Normal;
+ public const FileAttribute vbReadOnly = FileAttribute.ReadOnly;
+ public const FileAttribute vbHidden = FileAttribute.Hidden;
+ public const FileAttribute vbSystem = FileAttribute.System;
+ public const FileAttribute vbVolume = FileAttribute.Volume;
+ public const FileAttribute vbDirectory = FileAttribute.Directory;
+ public const FileAttribute vbArchive = FileAttribute.Archive;
+
+ public const FirstWeekOfYear vbUseSystem = FirstWeekOfYear.System;
+ public const FirstWeekOfYear vbFirstJan1 = FirstWeekOfYear.Jan1;
+ public const FirstWeekOfYear vbFirstFourDays = FirstWeekOfYear.FirstFourDays;
+ public const FirstWeekOfYear vbFirstFullWeek = FirstWeekOfYear.FirstFullWeek;
+
+ public const VbStrConv vbUpperCase = VbStrConv.UpperCase;
+ public const VbStrConv vbLowerCase = VbStrConv.LowerCase;
+ public const VbStrConv vbProperCase = VbStrConv.ProperCase;
+ public const VbStrConv vbWide = VbStrConv.Wide;
+ public const VbStrConv vbNarrow = VbStrConv.Narrow;
+ public const VbStrConv vbKatakana = VbStrConv.Katakana;
+ public const VbStrConv vbHiragana = VbStrConv.Hiragana;
+ public const VbStrConv vbSimplifiedChinese = VbStrConv.SimplifiedChinese;
+ public const VbStrConv vbTraditionalChinese = VbStrConv.TraditionalChinese;
+ public const VbStrConv vbLinguisticCasing = VbStrConv.LinguisticCasing;
+
+ public const TriState vbUseDefault = TriState.UseDefault;
+ public const TriState vbTrue = TriState.True;
+ public const TriState vbFalse = TriState.False;
+
+ public const VariantType vbEmpty = VariantType.Empty;
+ public const VariantType vbNull = VariantType.Null;
+ public const VariantType vbInteger = VariantType.Integer;
+ public const VariantType vbLong = VariantType.Long;
+ public const VariantType vbSingle = VariantType.Single;
+ public const VariantType vbDouble = VariantType.Double;
+ public const VariantType vbCurrency = VariantType.Currency;
+ public const VariantType vbDate = VariantType.Date;
+ public const VariantType vbString = VariantType.String;
+ public const VariantType vbObject = VariantType.Object;
+ public const VariantType vbBoolean = VariantType.Boolean;
+ public const VariantType vbVariant = VariantType.Variant;
+ public const VariantType vbDecimal = VariantType.Decimal;
+ public const VariantType vbByte = VariantType.Byte;
+ public const VariantType vbUserDefinedType = VariantType.UserDefinedType;
+ public const VariantType vbArray = VariantType.Array;
+
+ public const MsgBoxResult vbOK = MsgBoxResult.OK;
+ public const MsgBoxResult vbCancel = MsgBoxResult.Cancel;
+ public const MsgBoxResult vbAbort = MsgBoxResult.Abort;
+ public const MsgBoxResult vbRetry = MsgBoxResult.Retry;
+ public const MsgBoxResult vbIgnore = MsgBoxResult.Ignore;
+ public const MsgBoxResult vbYes = MsgBoxResult.Yes;
+ public const MsgBoxResult vbNo = MsgBoxResult.No;
+
+ public const MsgBoxStyle vbOKOnly = MsgBoxStyle.OKOnly;
+ public const MsgBoxStyle vbOKCancel = MsgBoxStyle.OKCancel;
+ public const MsgBoxStyle vbAbortRetryIgnore = MsgBoxStyle.AbortRetryIgnore;
+ public const MsgBoxStyle vbYesNoCancel = MsgBoxStyle.YesNoCancel;
+ public const MsgBoxStyle vbYesNo = MsgBoxStyle.YesNo;
+ public const MsgBoxStyle vbRetryCancel = MsgBoxStyle.RetryCancel;
+ public const MsgBoxStyle vbCritical = MsgBoxStyle.Critical;
+ public const MsgBoxStyle vbQuestion = MsgBoxStyle.Question;
+ public const MsgBoxStyle vbExclamation = MsgBoxStyle.Exclamation;
+ public const MsgBoxStyle vbInformation = MsgBoxStyle.Information;
+ public const MsgBoxStyle vbDefaultButton1 = MsgBoxStyle.DefaultButton1;
+ public const MsgBoxStyle vbDefaultButton2 = MsgBoxStyle.DefaultButton2;
+ public const MsgBoxStyle vbDefaultButton3 = MsgBoxStyle.DefaultButton3;
+ public const MsgBoxStyle vbApplicationModal = MsgBoxStyle.ApplicationModal;
+ public const MsgBoxStyle vbSystemModal = MsgBoxStyle.SystemModal;
+ public const MsgBoxStyle vbMsgBoxHelp = MsgBoxStyle.MsgBoxHelp;
+ public const MsgBoxStyle vbMsgBoxRight = MsgBoxStyle.MsgBoxRight;
+ public const MsgBoxStyle vbMsgBoxRtlReading = MsgBoxStyle.MsgBoxRtlReading;
+ public const MsgBoxStyle vbMsgBoxSetForeground = MsgBoxStyle.MsgBoxSetForeground;
+
+ // Constructors
+ // Properties
+ // Methods
+ // Events
+ };
+}
View
2  mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Interaction.cs
@@ -352,7 +352,7 @@ public static System.String Command ()
string [] args = Environment.GetCommandLineArgs ();
if (args != null && args.Length > 1) {
- return string.Join (" ", args, 2, args.Length - 1);
+ return string.Join (" ", args, 1, args.Length - 1);
} else {
return "";
}
View
103 mcs/class/Microsoft.VisualBasic/Microsoft.VisualBasic/Strings.cs
@@ -401,7 +401,21 @@ public static string Format(object expression, [Optional][DefaultValue("")]strin
}
break;
default:
- returnstr=Convert.ToDouble(expression).ToString (style);
+ if (style.IndexOf("X") != -1
+ || style.IndexOf("x") != -1 ) {
+ returnstr = Microsoft.VisualBasic.Conversion.Hex(Convert.ToInt64(expression));
+ }
+ else
+ try
+ {
+ returnstr=Convert.ToDouble(expression).ToString (style);
+ }
+ catch (Exception ex){
+ style = "0" + style;
+ returnstr=Convert.ToDouble(expression).ToString (style);
+ }
+
+
break;
}
break;
@@ -694,6 +708,7 @@ public static string Format(object expression, [Optional][DefaultValue("")]strin
return InStr(1, String1, String2, Compare);
}
+
/// <summary>
/// Returns an integer specifying the start position of the first occurrence of one string within another.
/// </summary>
@@ -826,17 +841,22 @@ public static string Format(object expression, [Optional][DefaultValue("")]strin
[DefaultValue(" ")]
string Delimiter)
{
+ try
+ {
+ if (SourceArray == null)
+ throw new ArgumentException("Argument 'SourceArray' can not be null.", "SourceArray");
+ if (SourceArray.Rank > 1)
+ throw new ArgumentException("Argument 'SourceArray' can have only one dimension.", "SourceArray");
- if (SourceArray == null)
- throw new ArgumentException("Argument 'SourceArray' can not be null.", "SourceArray");
- if (SourceArray.Rank > 1)
- throw new ArgumentException("Argument 'SourceArray' can have only one dimension.", "SourceArray");
-
- string[] dest;
- dest = new string[SourceArray.Length];
+ string[] dest;
+ dest = new string[SourceArray.Length];
- SourceArray.CopyTo(dest, 0);
- return string.Join(Delimiter, dest);
+ SourceArray.CopyTo(dest, 0);
+ return string.Join(Delimiter, dest);
+ }
+ catch (System.InvalidCastException ie){
+ throw new System.ArgumentException("Invalid argument");
+ }
}
/// <summary>
@@ -854,8 +874,8 @@ public static char LCase(char Value)
/// <param name="Value">Required. Any valid String or Char expression.</param>
public static string LCase(string Value)
{
- if ((Value == null) || (Value.Length == 0))
- return String.Empty; // VB.net does this.
+ if ((Value == null) || (Value.Length == 0))
+ return Value; // comparing nunit test results say this is an exception to the return String.Empty rule
return Value.ToLower();
}
@@ -865,16 +885,18 @@ public static string LCase(string Value)
/// Returns a string containing a specified number of characters from the left side of a string.
/// </summary>
/// <param name="Str">Required. String expression from which the leftmost characters are returned.</param>
- /// <param name="Length">Required. Integer expression. Numeric expression indicating how many characters to return. If 0, a zero-length string ("") is returned. If greater than or equal to the number of characters in Str, the entire string is returned.</param>
- public static string Left(string Str,
- int Length)
+ /// <param name="Length">Required. Integer expression. Numeric expression indicating how many characters to return.
+ /// If 0, a zero-length string ("") is returned. If greater than or equal to the number of characters in Str,
+ /// the entire string is returned.</param>
+ public static string Left(string Str, int Length)
{
if (Length < 0)
throw new ArgumentException("Argument 'Length' must be non-negative.", "Length");
- if ((Str == null) || (Str.Length == 0))
+ if ((Str == null) || (Str.Length == 0) || Length == 0)
return String.Empty; // VB.net does this.
-
- return Str.Substring(0, Length);
+ if (Length < Str.Length)
+ return Str.Substring(0, Length);
+ return Str;
}
/// <summary>
@@ -1202,16 +1224,16 @@ public static string Mid (string Str, int Start)
/// </summary>
/// <param name="Source">Required. String expression. Name of string variable.</param>
/// <param name="Length">Required. Integer expression. Length of returned string.</param>
- public static string RSet(string Source,
- int Length)
+ public static string RSet(string Source, int Length)
{
if (Source == null)
Source = String.Empty;
if (Length < 0)
throw new ArgumentOutOfRangeException("Length", "Length must be non-negative.");
-
- return Source.PadLeft(Length);
+ if (Length > Source.Length)
+ return Source.PadLeft(Length);
+ return Source.Substring(0, Length);
}
/// <summary>
@@ -1235,7 +1257,7 @@ public static string Space(int Number)
/// <param name="Compare">Optional. Numeric value indicating the comparison to use when evaluating substrings. See Settings for values.</param>
public static string[] Split(string Expression,
[Optional]
- [DefaultValue(" ")]
+ [DefaultValue("")]
string Delimiter,
[Optional]
[DefaultValue(-1)]
@@ -1245,30 +1267,37 @@ public static string Space(int Number)
[DefaultValue(CompareMethod.Binary)]
CompareMethod Compare)
{
-
-
if (Expression == null)
return new string[1];
- if ((Delimiter == null) || (Delimiter.Length == 0))
- {
+ if ((Delimiter == null) || (Delimiter.Length == 0)) {
string [] ret = new string[1];
ret[0] = Expression;
return ret;
}
if (Limit == 0)
Limit = 1;
-
- if (Limit < -1)
+ else if (Limit < -1)
throw new OverflowException("Arithmetic operation resulted in an overflow.");
- switch (Compare)
- {
- case CompareMethod.Binary:
- return Expression.Split(Delimiter.ToCharArray(0, 1), Limit);
- case CompareMethod.Text:
- return Expression.Split(Delimiter.ToCharArray(0, 1), Limit);
- default:
- throw new System.ArgumentException("Argument 'Compare' must be CompareMethod.Binary or CompareMethod.Text.", "Compare");
+
+ if (Limit != -1) {
+ switch (Compare){
+ case CompareMethod.Binary:
+ return Expression.Split(Delimiter.ToCharArray(0, 1), Limit);
+ case CompareMethod.Text:
+ return Expression.Split(Delimiter.ToCharArray(0, 1), Limit);
+ default:
+ throw new System.ArgumentException("Argument 'Compare' must be CompareMethod.Binary or CompareMethod.Text.", "Compare");
+ }
+ } else {
+ switch (Compare) {
+ case CompareMethod.Binary:
+ return Expression.Split(Delimiter.ToCharArray(0, 1));
+ case CompareMethod.Text:
+ return Expression.Split(Delimiter.ToCharArray(0, 1));
+ default:
+ throw new System.ArgumentException("Argument 'Compare' must be CompareMethod.Binary or CompareMethod.Text.", "Compare");
+ }
}
}
View
3  mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog
@@ -1,3 +1,6 @@
+2004-08-09 Sureshkumar T <tsureshkumar@novell.com>
+ * Tds70.cs - Prepare Method stored procedure handle read problem fixed.
+
2004-04-22 Sebastien Pouliot <sebastien@ximian.com>
* Tds70.cs: Updated to match changes in Mono.Security.dll.
View
4 mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs
@@ -457,9 +457,9 @@ public override string Prepare (string commandText, TdsMetaParameterCollection p
parms.Add (new TdsMetaParameter ("@P3", "nvarchar", commandText));
ExecProc ("sp_prepare", parms, 0, true);
- if (!NextResult () || !NextRow () || ColumnValues [0] == null || ColumnValues [0] == DBNull.Value)
- throw new TdsInternalException ();
SkipToEnd ();
+ if (ColumnValues [0] == null || ColumnValues [0] == DBNull.Value)
+ throw new TdsInternalException ();
return ColumnValues [0].ToString ();
}
View
3  mcs/class/Mono.Posix/Mono.Posix.dll.sources
@@ -4,4 +4,5 @@
./Mono.Posix/Syscall.cs
./Mono.Posix/MapAttribute.cs
./Mono.Posix/IncludeAttribute.cs
-./Mono.Posix/Catalog.cs
+./Mono.Posix/Catalog.cs
+./Mono.Posix/PeerCred.cs
View
4 mcs/class/Mono.Posix/Mono.Posix/ChangeLog
@@ -1,3 +1,7 @@
+2004-07-09 Dick Porter <dick@ximian.com>
+
+ * PeerCred.cs: Get the unix socket peer credentials.
+
2004-05-26 Miguel de Icaza <miguel@ximian.com>
* Syscall.cs: Do not let the runtime handle strings, as we do not
View
78 mcs/class/Mono.Posix/Mono.Posix/PeerCred.cs
@@ -0,0 +1,78 @@
+//
+// Mono.Posix.PeerCred: Peer credentials class for AF_UNIX sockets
+//
+// Authors:
+// Dick Porter (dick@ximian.com)
+//
+// (C) 2004 Novell, Inc (http://www.novell.com)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Net.Sockets;
+
+namespace Mono.Posix
+{
+ public class PeerCred
+ {
+ private struct PeerCredData {
+ public int pid;
+ public int uid;
+ public int gid;
+ }
+
+ /* Make sure this doesn't clash with anything in
+ * SocketOptionName, and keep it synchronised with the
+ * runtime
+ */
+ private const int so_peercred=10001;
+ private PeerCredData data;
+
+ public PeerCred (Socket sock) {
+ if (sock.AddressFamily != AddressFamily.Unix) {
+ throw new ArgumentException ("Only Unix sockets are supported", "sock");
+ }
+
+ data = (PeerCredData)sock.GetSocketOption (SocketOptionLevel.Socket, (SocketOptionName)so_peercred);
+ }
+
+ public int ProcessID {
+ get {
+ return(data.pid);
+ }
+ }
+
+ public int UserID {
+ get {
+ return(data.uid);
+ }
+ }
+
+ public int GroupID {
+ get {
+ return(data.gid);
+ }
+ }
+ }
+}
+
View
4 mcs/class/Mono.Security/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Mono.Security_test.dll.sources: Merge new unit tests from HEAD.
+
2004-05-11 Carlos Guzman Alvarez <carlosga@telefonica.net>
* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
View
184 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeBase.cs
@@ -5,9 +5,7 @@
// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2003 Motus Technologies Inc. (http://www.motus.com)
-// (C) 2004 Novell (http://www.novell.com)
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -58,63 +56,167 @@ class AuthenticodeBase {
public const string spcIndirectDataContext = "1.3.6.1.4.1.311.2.1.4";
- internal byte[] rawData;
+ private byte[] fileblock;
+ private FileStream fs;
+ private int blockNo;
+ private int blockLength;
+ private int peOffset;
+ private int dirSecurityOffset;
+ private int dirSecuritySize;
public AuthenticodeBase ()
{
+ fileblock = new byte [4096];
}
- protected byte[] HashFile (string fileName, string hashName)
+ internal void Open (string filename)
{
- FileStream fs = new FileStream (fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
- byte[] file = new byte [fs.Length];
- fs.Read (file, 0, file.Length);
- fs.Close ();
+ if (fs != null)
+ Close ();
+ fs = new FileStream (filename, FileMode.Open, FileAccess.Read, FileShare.Read);
+ }
- // MZ - DOS header
- if (BitConverterLE.ToUInt16 (file, 0) != 0x5A4D)
- return null;
+ internal void Close ()
+ {
+ if (fs != null) {
+ fs.Close ();
+ fs = null;
+ blockNo = 0;
+ }
+ }
- // find offset of PE header
- int peOffset = BitConverterLE.ToInt32 (file, 60);
- if (peOffset > file.Length)
- return null;
+ internal bool ReadFirstBlock ()
+ {
+ if (fs == null)
+ return false;
+
+ fs.Position = 0;
+ // read first block - it will include (100% sure)
+ // the MZ header and (99.9% sure) the PE header
+ blockLength = fs.Read (fileblock, 0, fileblock.Length);
+ blockNo = 1;
+ if (blockLength < 64)
+ return false; // invalid PE file
+
+ // 1. Validate the MZ header informations
+ // 1.1. Check for magic MZ at start of header
+ if (BitConverterLE.ToUInt16 (fileblock, 0) != 0x5A4D)
+ return false;
+
+ // 1.2. Find the offset of the PE header
+ peOffset = BitConverterLE.ToInt32 (fileblock, 60);
+ if (peOffset > fileblock.Length) {
+ // just in case (0.1%) this can actually happen
+ string msg = String.Format (Locale.GetText (
+ "Header size too big (> {0} bytes)."),
+ fileblock.Length);
+ throw new NotSupportedException (msg);
+ }
+ if (peOffset > fs.Length)
+ return false;
- // PE - NT header
- if (BitConverterLE.ToUInt16 (file, peOffset) != 0x4550)
- return null;
+ // 2. Read between DOS header and first part of PE header
+ // 2.1. Check for magic PE at start of header
+ if (BitConverterLE.ToUInt16 (fileblock, peOffset) != 0x4550)
+ return false;
- // IMAGE_DIRECTORY_ENTRY_SECURITY
- int dirSecurityOffset = BitConverterLE.ToInt32 (file, peOffset + 152);
- int dirSecuritySize = BitConverterLE.ToInt32 (file, peOffset + 156);
+ // 2.2. Locate IMAGE_DIRECTORY_ENTRY_SECURITY (offset and size)
+ dirSecurityOffset = BitConverterLE.ToInt32 (fileblock, peOffset + 152);
+ dirSecuritySize = BitConverterLE.ToInt32 (fileblock, peOffset + 156);
+
+ return true;
+ }
+
+ internal byte[] GetSecurityEntry ()
+ {
+ if (blockNo < 1)
+ ReadFirstBlock ();
if (dirSecuritySize > 8) {
- rawData = new byte [dirSecuritySize - 8];
- Buffer.BlockCopy (file, dirSecurityOffset + 8, rawData, 0, rawData.Length);
-/* DEBUG
- FileStream debug = new FileStream (fileName + ".sig", FileMode.Create, FileAccess.Write);
- debug.Write (rawData, 0, rawData.Length);
- debug.Close ();*/
+ // remove header from size (not ASN.1 based)
+ byte[] secEntry = new byte [dirSecuritySize - 8];
+ // position after header and read entry
+ fs.Position = dirSecurityOffset + 8;
+ fs.Read (secEntry, 0, secEntry.Length);
+ return secEntry;
+ }
+ return null;
+ }
+
+ // returns null if the file isn't signed
+ internal byte[] GetHash (HashAlgorithm hash)
+ {
+ if (blockNo < 1)
+ ReadFirstBlock ();
+ fs.Position = blockLength;
+
+ // hash the rest of the file
+ long n = fs.Length - blockLength;
+ // minus any authenticode signature (with 8 bytes header)
+ if (dirSecurityOffset > 0) {
+ // it is also possible that the signature block
+ // starts within the block in memory (small EXE)
+ if (dirSecurityOffset < blockLength) {
+ blockLength = dirSecurityOffset;
+ n = 0;
+ }
+ else
+ n -= (dirSecuritySize);
}
- else
- rawData = null;
- HashAlgorithm hash = HashAlgorithm.Create (hashName);
- // 0 to 215 (216) then skip 4 (checksum)
+ // Authenticode(r) gymnastics
+ // Hash from (generally) 0 to 215 (216 bytes)
int pe = peOffset + 88;
- hash.TransformBlock (file, 0, pe, file, 0);
+ hash.TransformBlock (fileblock, 0, pe, fileblock, 0);
+ // then skip 4 for checksum
pe += 4;
- // 220 to 279 (60) then skip 8 (IMAGE_DIRECTORY_ENTRY_SECURITY)
- hash.TransformBlock (file, pe, 60, file, pe);
+ // Continue hashing from (generally) 220 to 279 (60 bytes)
+ hash.TransformBlock (fileblock, pe, 60, fileblock, pe);
+ // then skip 8 bytes for IMAGE_DIRECTORY_ENTRY_SECURITY
pe += 68;
- // 288 to end of file
- int n = file.Length - pe;
- // minus any authenticode signature (with 8 bytes header)
- if (dirSecurityOffset != 0)
- n -= (dirSecuritySize);
- hash.TransformFinalBlock (file, pe, n);
+ // everything is present so start the hashing
+ if (n == 0) {
+ // hash the (only) block
+ hash.TransformFinalBlock (fileblock, pe, blockLength - pe);
+ }
+ else {
+ // hash the last part of the first (already in memory) block
+ hash.TransformBlock (fileblock, pe, blockLength - pe, fileblock, 0);
+
+ // hash by blocks of 4096 bytes
+ long blocks = (n >> 12);
+ int remainder = (int)(n - (blocks << 12));
+ if (remainder == 0) {
+ blocks--;
+ remainder = 4096;
+ }
+ // blocks
+ while (blocks-- > 0) {
+ fs.Read (fileblock, 0, fileblock.Length);
+ hash.TransformBlock (fileblock, 0, fileblock.Length, fileblock, 0);
+ }
+ // remainder
+ if (fs.Read (fileblock, 0, remainder) != remainder)
+ return null;
+ hash.TransformFinalBlock (fileblock, 0, remainder);
+ }
return hash.Hash;
}
+
+ // for compatibility only
+ protected byte[] HashFile (string fileName, string hashName)
+ {
+ try {
+ Open (fileName);
+ HashAlgorithm hash = HashAlgorithm.Create (hashName);
+ byte[] result = GetHash (hash);
+ Close ();
+ return result;
+ }
+ catch {
+ return null;
+ }
+ }
}
}
View
123 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeDeformatter.cs
@@ -5,9 +5,7 @@
// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2003 Motus Technologies Inc. (http://www.motus.com)
-// (C) 2004 Novell (http://www.novell.com)
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -56,6 +54,9 @@ class AuthenticodeDeformatter : AuthenticodeBase {
private DateTime timestamp;
private X509Certificate signingCertificate;
private int reason;
+ private bool trustedRoot;
+ private bool trustedTimestampRoot;
+ private byte[] entry;
private X509Chain signerChain;
private X509Chain timestampChain;
@@ -69,17 +70,20 @@ public AuthenticodeDeformatter () : base ()
public AuthenticodeDeformatter (string fileName) : this ()
{
- if (!CheckSignature (fileName)) {
- // invalid or no signature
- if (signedHash != null)
- throw new COMException ("Invalid signature");
- // no exception is thrown when there's no signature in the PE file
- }
+ FileName = fileName;
}
public string FileName {
get { return filename; }
- set { CheckSignature (value); }
+ set {
+ Reset ();
+ try {
+ CheckSignature (value);
+ }
+ catch {
+ reason = 1;
+ }
+ }
}
public byte[] Hash {
@@ -100,7 +104,7 @@ public AuthenticodeDeformatter (string fileName) : this ()
public bool IsTrusted ()
{
- if (rawData == null) {
+ if (entry == null) {
reason = 1;
return false;
}
@@ -110,13 +114,13 @@ public bool IsTrusted ()
return false;
}
- if (signerChain.Root == null) {
+ if ((signerChain.Root == null) || !trustedRoot) {
reason = 6;
return false;
}
if (timestamp != DateTime.MinValue) {
- if (timestampChain.Root == null) {
+ if ((timestampChain.Root == null) || !trustedTimestampRoot) {
reason = 6;
return false;
}
@@ -138,7 +142,11 @@ public bool IsTrusted ()
}
public byte[] Signature {
- get { return (byte[]) rawData.Clone (); }
+ get {
+ if (entry == null)
+ return null;
+ return (byte[]) entry.Clone ();
+ }
}
public DateTime Timestamp {
@@ -156,43 +164,58 @@ public bool IsTrusted ()
private bool CheckSignature (string fileName)
{
filename = fileName;
-
- // by default we try with MD5
- string hashName = "MD5";
- // compare the signature's hash with the hash of the file
- hash = HashFile (filename, hashName);
-
- // is a signature present ?
- if (rawData == null)
+ base.Open (filename);
+ entry = base.GetSecurityEntry ();
+ if (entry == null) {
+ // no signature is present
+ reason = 1;
+ base.Close ();
return false;
+ }
- PKCS7.ContentInfo ci = new PKCS7.ContentInfo (rawData);
- if (ci.ContentType != PKCS7.Oid.signedData)
+ PKCS7.ContentInfo ci = new PKCS7.ContentInfo (entry);
+ if (ci.ContentType != PKCS7.Oid.signedData) {
+ base.Close ();
return false;
+ }
PKCS7.SignedData sd = new PKCS7.SignedData (ci.Content);
- if (sd.ContentInfo.ContentType != spcIndirectDataContext)
+ if (sd.ContentInfo.ContentType != spcIndirectDataContext) {
+ base.Close ();
return false;
+ }
coll = sd.Certificates;
ASN1 spc = sd.ContentInfo.Content;
signedHash = spc [0][1][1];
- if (signedHash.Length == 20) {
- // seems to be SHA-1, restart hashing
- hashName = "SHA1";
- hash = HashFile (filename, hashName);
+
+ HashAlgorithm ha = null;
+ switch (signedHash.Length) {
+ case 16:
+ ha = HashAlgorithm.Create ("MD5");
+ hash = GetHash (ha);
+ break;
+ case 20:
+ ha = HashAlgorithm.Create ("SHA1");
+ hash = GetHash (ha);
+ break;
+ default:
+ reason = 5;
+ base.Close ();
+ return false;
}
+ base.Close ();
if (!signedHash.CompareValue (hash))
return false;
// messageDigest is a hash of spcIndirectDataContext (which includes the file hash)
byte[] spcIDC = spc [0].Value;
- HashAlgorithm ha = HashAlgorithm.Create (hashName);
+ ha.Initialize (); // re-using hash instance
byte[] messageDigest = ha.ComputeHash (spcIDC);
- return VerifySignature (sd, messageDigest, hashName);
+ return VerifySignature (sd, messageDigest, ha);
}
private bool CompareIssuerSerial (string issuer, byte[] serial, X509Certificate x509)
@@ -212,7 +235,7 @@ private bool CompareIssuerSerial (string issuer, byte[] serial, X509Certificate
}
//private bool VerifySignature (ASN1 cs, byte[] calculatedMessageDigest, string hashName)
- private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDigest, string hashName)
+ private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDigest, HashAlgorithm ha)
{
string contentType = null;
ASN1 messageDigest = null;
@@ -241,7 +264,7 @@ private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDiges
case "1.3.6.1.4.1.311.2.1.12":
// spcSpOpusInfo (Microsoft code signing)
try {
- spcSpOpusInfo = System.Text.Encoding.UTF8.GetString (attr[1][0][1][0].Value);
+ spcSpOpusInfo = System.Text.Encoding.UTF8.GetString (attr[1][0][0][0].Value);
}
catch (NullReferenceException) {
spcSpOpusInfo = null;
@@ -261,13 +284,13 @@ private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDiges
return false;
// verify signature
- string hashOID = CryptoConfig.MapNameToOID (hashName);
+ string hashOID = CryptoConfig.MapNameToOID (ha.ToString ());
// change to SET OF (not [0]) as per PKCS #7 1.5
ASN1 aa = new ASN1 (0x31);
foreach (ASN1 a in sd.SignerInfo.AuthenticatedAttributes)
aa.Add (a);
- HashAlgorithm ha = HashAlgorithm.Create (hashName);
+ ha.Initialize ();
byte[] p7hash = ha.ComputeHash (aa.GetBytes ());
byte[] signature = sd.SignerInfo.Signature;
@@ -281,10 +304,9 @@ private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDiges
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider) x509.RSA;
if (rsa.VerifyHash (p7hash, hashOID, signature)) {
signerChain.LoadCertificates (coll);
- if (signerChain.Build (x509))
- signingCertificate = x509;
- else
- return false;
+ trustedRoot = signerChain.Build (x509);
+ signingCertificate = x509;
+ break;
}
}
}
@@ -300,17 +322,18 @@ private bool VerifySignature (PKCS7.SignedData sd, byte[] calculatedMessageDiges
// countersignature (1 2 840 113549 1 9 6)
// SET {
PKCS7.SignerInfo cs = new PKCS7.SignerInfo (attr [1]);
- return VerifyCounterSignature (cs, signature, hashName);
+ trustedTimestampRoot = VerifyCounterSignature (cs, signature);
+ break;
default:
// we don't support other unauthenticated attributes
break;
}
}
- return true;
+ return (trustedRoot && trustedTimestampRoot);
}
- private bool VerifyCounterSignature (PKCS7.SignerInfo cs, byte[] signature, string hashName)
+ private bool VerifyCounterSignature (PKCS7.SignerInfo cs, byte[] signature)
{
// SEQUENCE {
// INTEGER 1
@@ -357,6 +380,7 @@ private bool VerifyCounterSignature (PKCS7.SignerInfo cs, byte[] signature, stri
if (messageDigest == null)
return false;
// TODO: must be read from the ASN.1 structure
+ string hashName = null;
switch (messageDigest.Length) {
case 16:
hashName = "MD5";
@@ -397,5 +421,20 @@ private bool VerifyCounterSignature (PKCS7.SignerInfo cs, byte[] signature, stri
// no certificate can verify this signature!
return false;
}
+
+ private void Reset ()
+ {
+ filename = null;
+ entry = null;
+ hash = null;
+ signedHash = null;
+ signingCertificate = null;
+ reason = -1;
+ trustedRoot = false;
+ trustedTimestampRoot = false;
+ signerChain.Reset ();
+ timestampChain.Reset ();
+ timestamp = DateTime.MinValue;
+ }
}
}
View
11 mcs/class/Mono.Security/Mono.Security.Authenticode/AuthenticodeFormatter.cs
@@ -5,9 +5,7 @@
// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2003 Motus Technologies Inc. (http://www.motus.com)
-// (C) 2004 Novell (http://www.novell.com)
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -54,6 +52,7 @@ public class AuthenticodeFormatter : AuthenticodeBase {
private PKCS7.SignedData pkcs7;
private string description;
private Uri url;
+ private byte [] entry;
public AuthenticodeFormatter () : base ()
{
@@ -242,11 +241,11 @@ public bool Sign (string fileName)
int dirSecuritySize = BitConverter.ToInt32 (file, peOffset + 156);
if (dirSecuritySize > 8) {
- rawData = new byte [dirSecuritySize - 8];
- Buffer.BlockCopy (file, dirSecurityOffset + 8, rawData, 0, rawData.Length);
+ entry = new byte [dirSecuritySize - 8];
+ Buffer.BlockCopy (file, dirSecurityOffset + 8, entry, 0, entry.Length);
}
else
- rawData = null;
+ entry = null;
HashAlgorithm hash = HashAlgorithm.Create (hashAlgorithm);
// 0 to 215 (216) then skip 4 (checksum)
View
6 mcs/class/Mono.Security/Mono.Security.Authenticode/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * AuthenticodeBase.cs: Merge optimizations from HEAD.
+ * AuthenticodeDeformatter.cs: Merge optimizations from HEAD.
+ * AuthenticodeFormatter.cs: Merge optimizations from HEAD.
+
2004-05-11 Sebastien Pouliot <sebastien@ximian.com>
* PrivateKey.cs: Better exception reporting. Added globalization to
View
5 mcs/class/Mono.Security/Mono.Security.Cryptography/ChangeLog
@@ -1,3 +1,8 @@
+2004-09-29 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RSAManaged.cs: KeySize is now always a multiple of 8 bits.
+ Fix #66929.
+
2004-06-23 Sebastien Pouliot <sebastien@ximian.com>
* SymmetricTransform.cs: Reduce by one the number of block when
View
10 mcs/class/Mono.Security/Mono.Security.Cryptography/RSAManaged.cs
@@ -14,6 +14,8 @@
//
//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
@@ -147,8 +149,12 @@ private void GenerateKeyPair ()
public override int KeySize {
get {
// in case keypair hasn't been (yet) generated
- if (keypairGenerated)
- return n.BitCount ();
+ if (keypairGenerated) {
+ int ks = n.BitCount ();
+ if ((ks & 7) != 0)
+ ks = ks + (8 - (ks & 7));
+ return ks;
+ }
else
return base.KeySize;
}
View
21 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog
@@ -1,3 +1,24 @@
+2004-10-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * SslClientStream.cs: Changed InputBuffer to internal (was protected).
+
+2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * HttpsClientStream.cs: the .ctor receives a pre-read buffer now.
+ * SslClientStream.cs: added InputBuffer property.
+
+2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
+
+ * SslClientStream.cs: Changed lock to "new object()" and not
+ String.Empty (as the read/write locks points becomes the same).
+ * SslServerStream.cs: Changed lock to "new object()" and not
+ String.Empty (as the read/write locks points becomes the same).
+
+2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * HttpsClientStream.cs: get an HttpWebRequest so that we can use the
+ ServicePoint it has. No need to get the host now.
+
2004-05-09 Carlos Guzman Alvarez <carlosga@telefonica.net>
* Mono.Security.Protocol.Tls/Alert.cs:
View
15 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs
@@ -40,17 +40,18 @@ namespace Mono.Security.Protocol.Tls {
internal class HttpsClientStream : SslClientStream {
- private string _host;
- private WebRequest _request;
+ private HttpWebRequest _request;
- public HttpsClientStream (Stream stream, string targetHost, X509CertificateCollection clientCertificates, WebRequest request)
- : base (stream, targetHost, false, SecurityProtocolType.Default, clientCertificates)
+ public HttpsClientStream (Stream stream, X509CertificateCollection clientCertificates,
+ HttpWebRequest request, byte [] buffer)
+ : base (stream, request.RequestUri.Host, false, SecurityProtocolType.Default, clientCertificates)
{
- _host = targetHost;
// this constructor permit access to the WebRequest to call
// ICertificatePolicy.CheckValidationResult
_request = request;
+ if (buffer != null)
+ InputBuffer.Write (buffer, 0, buffer.Length);
#if !NET_1_0
// also saved from reflection
base.CheckCertRevocationStatus = ServicePointManager.CheckCertificateRevocationList;
@@ -61,8 +62,7 @@ internal override bool RaiseServerCertificateValidation (X509Certificate certifi
{
bool failed = (certificateErrors.Length > 0);
if (ServicePointManager.CertificatePolicy != null) {
- Uri target = new Uri ("https://" + _host);
- ServicePoint sp = ServicePointManager.FindServicePoint (target);
+ ServicePoint sp = _request.ServicePoint;
// only one problem can be reported by this interface
int problem = ((failed) ? certificateErrors [0] : 0);
@@ -73,3 +73,4 @@ internal override bool RaiseServerCertificateValidation (X509Certificate certifi
}
}
}
+
View
10 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs
@@ -125,6 +125,10 @@ public override long Position
set { throw new NotSupportedException(); }
}
+ // required by HttpsClientStream for proxy support
+ internal Stream InputBuffer {
+ get { return inputBuffer; }
+ }
#endregion
#region Security Properties
@@ -349,8 +353,8 @@ public PrivateKeySelectionCallback PrivateKeyCertSelectionDelegate
this.inputBuffer = new BufferedStream(new MemoryStream());
this.innerStream = stream;
this.ownsStream = ownsStream;
- this.read = String.Empty;
- this.write = String.Empty;
+ this.read = new object ();
+ this.write = new object ();
this.protocol = new ClientRecordProtocol(innerStream, context);
}
@@ -821,4 +825,4 @@ internal void NegotiateHandshake()
#endregion
}
-}
+}
View
4 mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs
@@ -306,8 +306,8 @@ public PrivateKeySelectionCallback PrivateKeyCertSelectionDelegate
this.inputBuffer = new BufferedStream(new MemoryStream());
this.innerStream = stream;
this.ownsStream = ownsStream;
- this.read = String.Empty;
- this.write = String.Empty;
+ this.read = new object ();
+ this.write = new object ();
this.protocol = new ServerRecordProtocol(innerStream, context);
}
View
5 mcs/class/Mono.Security/Mono.Security.X509.Extensions/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * KeyUsageExtension.cs: Added Encode to extension so it can be used
+ by makecert. Fix bug # 61240. Patch provided by Ianier Munoz.
+
2004-04-28 Sebastien Pouliot <sebastien@ximian.com>
* KeyUsageExtension.cs: Added missing INSIDE_CORLIB to enum.
View
17 mcs/class/Mono.Security/Mono.Security.X509.Extensions/KeyUsageExtension.cs
@@ -86,6 +86,11 @@ class KeyUsageExtension : X509Extension {
public KeyUsageExtension (X509Extension extension) : base (extension) {}
+ public KeyUsageExtension () : base ()
+ {
+ extnOid = "2.5.29.15";
+ }
+
protected override void Decode ()
{
ASN1 bitString = new ASN1 (extnValue.Value);
@@ -96,6 +101,18 @@ protected override void Decode ()
kubits = (kubits << 8) + bitString.Value [i++];
}
+ protected override void Encode ()
+ {
+ if (extnValue == null) {
+ extnValue = new ASN1 (0x03, new byte[] { 0x00, (byte)kubits });
+ }
+ }
+
+ public KeyUsages KeyUsage {
+ get { return (KeyUsages) kubits; }
+ set { kubits = Convert.ToInt32 (value, CultureInfo.InvariantCulture); }
+ }
+
public override string Name {
get { return "Key Usage"; }
}
View
11 mcs/class/Mono.Security/Mono.Security.X509/ChangeLog
@@ -1,3 +1,14 @@
+2004-09-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * X509Chain.cs: Merge bug fixes from HEAD.
+ * X509Store.cs: Merge enhancements from HEAD.
+
+2004-07-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * X501Name.cs: Support for E (email) in FromString.
+ * X520Attributes.cs: Added X520.EmailAddress.
+ Both patches fix bug #61241 and were contributed by Ianier Munoz.
+
2004-05-27 Sebastien Pouliot <sebastien@ximian.com>
* X509Certificate.cs: Rethrow original exception when parsing X.509
View
2  mcs/class/Mono.Security/Mono.Security.X509/X501Name.cs
@@ -162,6 +162,8 @@ static private X520.AttributeTypeAndValue GetAttributeFromOid (string attributeT
case "S": // Microsoft
case "ST": // RFC2253
return new X520.StateOrProvinceName ();
+ case "E": // NOTE: Not part of RFC2253
+ return new X520.EmailAddress ();
case "DC":
// return streetAddress;
case "UID":
View
9 mcs/class/Mono.Security/Mono.Security.X509/X509Chain.cs
@@ -9,9 +9,7 @@
// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2003 Motus Technologies Inc. (http://www.motus.com)
-// (C) 2004 Novell (http://www.novell.com)
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -134,7 +132,7 @@ public bool Build (X509Certificate leaf)
tmp = FindCertificateParent (x);
if (x != null) {
_chain.Add (x);
- tmp = x; // last valid
+ x = tmp; // last valid
}
}
// find a trusted root
@@ -191,7 +189,8 @@ public void Reset ()
_status = X509ChainStatusFlags.NoError;
roots = null; // this force a reload
certs.Clear ();
- _chain.Clear ();
+ if (_chain != null)
+ _chain.Clear ();
}
// private stuff
View
31 mcs/class/Mono.Security/Mono.Security.X509/X509Store.cs
@@ -4,9 +4,7 @@
// Author:
// Sebastien Pouliot <sebastien@ximian.com>
//
-// (C) 2004 Novell (http://www.novell.com)
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -106,9 +104,7 @@ public void Clear ()
public void Import (X509Certificate certificate)
{
- if (!Directory.Exists (_storePath)) {
- Directory.CreateDirectory (_storePath);
- }
+ CheckStore (_storePath, true);
string filename = Path.Combine (_storePath, GetUniqueName (certificate));
if (!File.Exists (filename)) {
@@ -183,14 +179,28 @@ private X509Crl LoadCrl (string filename)
return crl;
}
- private X509CertificateCollection BuildCertificatesCollection (string storeName)
+ private bool CheckStore (string path, bool throwException)
{
- string path = Path.Combine (_storePath, storeName);
- if (!Directory.Exists (path)) {
+ try {
+ if (Directory.Exists (path))
+ return true;
Directory.CreateDirectory (path);
+ return Directory.Exists (path);
+ }
+ catch {
+ if (throwException)
+ throw;
+ return false;
}
+ }
+ private X509CertificateCollection BuildCertificatesCollection (string storeName)
+ {
X509CertificateCollection coll = new X509CertificateCollection ();
+ string path = Path.Combine (_storePath, storeName);
+ if (!CheckStore (path, false))
+ return coll; // empty collection
+
string[] files = Directory.GetFiles (path, "*.cer");
if ((files != null) && (files.Length > 0)) {
foreach (string file in files) {
@@ -213,6 +223,9 @@ private ArrayList BuildCrlsCollection (string storeName)
{
ArrayList list = new ArrayList ();
string path = Path.Combine (_storePath, storeName);
+ if (!CheckStore (path, false))
+ return list; // empty list
+
string[] files = Directory.GetFiles (path, "*.crl");
if ((files != null) && (files.Length > 0)) {
foreach (string file in files) {
View
12 mcs/class/Mono.Security/Mono.Security.X509/X520Attributes.cs
@@ -101,6 +101,10 @@ internal ASN1 GetASN1 (byte encoding)
// PRINTABLESTRING
asn1.Add (new ASN1 (0x13, Encoding.ASCII.GetBytes (attrValue)));
break;
+ case 0x16:
+ // IA5STRING
+ asn1.Add (new ASN1 (0x16, Encoding.ASCII.GetBytes (attrValue)));
+ break;
case 0x1E:
// BMPSTRING
asn1.Add (new ASN1 (0x1E, Encoding.BigEndianUnicode.GetBytes (attrValue)));
@@ -176,6 +180,14 @@ public OrganizationalUnitName () : base ("2.5.4.11", 64)
}
}
+ // NOTE: Not part of RFC2253
+ public class EmailAddress : AttributeTypeAndValue
+ {
+ public EmailAddress () : base ("1.2.840.113549.1.9.1", 128, 0x16)
+ {
+ }
+ }
+
/* -- Naming attributes of type X520Title
* id-at-title AttributeType ::= { id-at 12 }
*
View
1  mcs/class/Mono.Security/Mono.Security_test.dll.sources
@@ -9,6 +9,7 @@ Mono.Math/PrimeTestingTest.cs
Mono.Math/SearchGeneratorTest.cs
Mono.Security/ASN1ConvertTest.cs
Mono.Security/StrongNameTest.cs
+Mono.Security.Authenticode/AuthenticodeDeformatterTest.cs
Mono.Security.Authenticode/PrivateKeyTest.cs
Mono.Security.Authenticode/SoftwarePublisherCertificateTest.cs
Mono.Security.Cryptography/ARC4ManagedTest.cs
View
724 mcs/class/Mono.Security/Test/Mono.Security.Authenticode/AuthenticodeDeformatterTest.cs
@@ -0,0 +1,724 @@
+//
+// AuthenticodeDeformatterTest.cs -
+// NUnit Test Cases for AuthenticodeDeformatter
+//
+// Author:
+// Sebastien Pouliot (sebastien@ximian.com)
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.IO;
+using System.Reflection;
+using System.Security.Cryptography;
+
+using Mono.Security.Authenticode;
+using NUnit.Framework;
+
+namespace MonoTests.Mono.Security.Authenticode {
+
+ [TestFixture]
+ public class AuthenticodeDeformatterTest {
+
+ static byte[] helloworld_signed = {
+ 0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD,
+ 0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70,
+ 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F,
+ 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20,
+ 0x44, 0x4F, 0x53, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A,
+ 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x45, 0x00, 0x00,
+ 0x4C, 0x01, 0x03, 0x00, 0xF5, 0xE5, 0xFA, 0x3E, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x01, 0x0B, 0x01, 0x06, 0x00,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1E, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x96, 0x96, 0x00, 0x00, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC4, 0x22, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xA8, 0x11, 0x00, 0x00,
+ 0x00, 0x60, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x20, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00,
+ 0x24, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x60, 0x2E, 0x72, 0x73, 0x72,
+ 0x63, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40,
+ 0x2E, 0x72, 0x65, 0x6C, 0x6F, 0x63, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
+ 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x7C, 0x20, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x13, 0x30, 0x01, 0x00, 0x0B, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, 0x70, 0x28, 0x03, 0x00,
+ 0x00, 0x0A, 0x2A, 0x00, 0x13, 0x30, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x28, 0x04, 0x00, 0x00, 0x0A, 0x2A, 0x00,
+ 0x42, 0x53, 0x4A, 0x42, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0C, 0x00, 0x00, 0x00, 0x76, 0x31, 0x2E, 0x31, 0x2E, 0x34, 0x33, 0x32,
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x6C, 0x00, 0x00, 0x00,
+ 0xEC, 0x00, 0x00, 0x00, 0x23, 0x7E, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00,
+ 0x9C, 0x00, 0x00, 0x00, 0x23, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x73,
+ 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+ 0x23, 0x55, 0x53, 0x00, 0x0C, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+ 0x23, 0x47, 0x55, 0x49, 0x44, 0x00, 0x00, 0x00, 0x1C, 0x02, 0x00, 0x00,
+ 0x2C, 0x00, 0x00, 0x00, 0x23, 0x42, 0x6C, 0x6F, 0x62, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x47, 0x15, 0x00, 0x00,
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x01, 0x33, 0x00, 0x02, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
+ 0x25, 0x00, 0x1E, 0x00, 0x06, 0x00, 0x5C, 0x00, 0x49, 0x00, 0x06, 0x00,
+ 0x70, 0x00, 0x1E, 0x00, 0x06, 0x00, 0x88, 0x00, 0x1E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x10, 0x00, 0x2C, 0x00, 0x33, 0x00, 0x05, 0x00, 0x01, 0x00,
+ 0x01, 0x00, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x3E, 0x00,
+ 0x0A, 0x00, 0x01, 0x00, 0x68, 0x20, 0x00, 0x00, 0x00, 0x00, 0x86, 0x18,
+ 0x43, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x83, 0x00,
+ 0x11, 0x00, 0x43, 0x00, 0x14, 0x00, 0x19, 0x00, 0x43, 0x00, 0x10, 0x00,
+ 0x21, 0x00, 0x90, 0x00, 0x1F, 0x00, 0x09, 0x00, 0x43, 0x00, 0x10, 0x00,
+ 0x20, 0x00, 0x13, 0x00, 0x1A, 0x00, 0x2E, 0x00, 0x0B, 0x00, 0x24, 0x00,
+ 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00