Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / X509Logo.cs / 1 / X509Logo.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.IO; using System.Text; using System.Diagnostics; using System.Collections.Generic; using System.Security.Cryptography; using System.Runtime.InteropServices; using System.Security.Cryptography.X509Certificates; // // Summary: // There are 4 different logo types supported by the RFC. // Remarks: // Examples are // Community: Visa or MasterCard. // Issuer: Versign, Thawte // Subject: etrade.com, ebay.com // Other: no idea // internal enum X509LogoType : byte { Community = 0xa0, Issuer = 0xa1, Subject = 0xa2, Other = 0xa3 } // // Summary: // Graphical and auditory logos are supported // internal enum X509LogoDataType { Image, Audio }; // // Summary: // This is the base logo class. It contains the common properties between image // and audio logos. Including type, location and hash information // abstract class X509Logo { X509LogoType m_logoType; // Issuer, Subject, ... string m_mediaType; // mime-type image/gif, image/jpeg Dictionarym_fileHashes; // Multiple hashes are supported. List m_fileLocations; // Multiple file locations are supported. // // Reference file location and hash are not supported in this release. // // string m_referenceFileLocation; // Location of LogoTypeDataFile // byte[] m_referenceFileHash; // Hash of reference file public X509LogoType LogoType { get { return m_logoType; } } public string MediaType { get { return m_mediaType; } } public Dictionary Hashes { get { return m_fileHashes; } } public List FileLocations { get { return m_fileLocations; } } // // Summary: // Constructs a new X509Logo // // Parameters: // logoType - The pid of the calling client process. // mediaType - Format of logo file // hashes - Map of hash algorithm oid to the bytes of the hash. // fileLocations - List of the file locations where the logo can be found. // public X509Logo( X509LogoType logoType, string mediaType, Dictionary hashes, List fileLocations ) { m_logoType = logoType; m_mediaType = mediaType; m_fileHashes = hashes; m_fileLocations = fileLocations; } // // Summary: // Constructs a string representing the logo in the following format: // // 30 5f a1 5d a0 5b 30 59 0_�]�[0Y // 30 57 30 55 16 09 69 6d 0W0U..im // 61 67 65 2f 67 69 66 30 age/gif0 // 21 30 1f 30 07 06 05 2b !0.0.... // 0e 03 02 1a 04 14 8f e5 .......� // d3 1a 86 ac 8d 8e 6b c3 O.....kA // cf 80 6a d4 48 18 2c 7b I.jOH.,{ // 19 2e 30 25 16 23 68 74 ..0%.#ht // 74 70 3a 2f 2f 6c 6f 67 tp://log // 6f 2e 76 65 72 69 73 69 o.verisi // 67 6e 2e 63 6f 6d 2f 76 gn.com/v // 73 6c 6f 67 6f 2e 67 69 slogo.gi // 66 f // // LogoType: Issuer // MediaType: image/gif // Location(s): http://logo.verisign.com/vslogo.gif // // Hash(es) // // Name: sha1 // Oid: 1.3.14.3.2.26 // Bytes: // 8f e5 d3 1a 86 ac 8d 8e .�O..... // 6b c3 cf 80 6a d4 48 18 kAI.jOH. // 2c 7b 19 2e ,{.. // public override string ToString() { #if DEBUG StringBuilder sb = new StringBuilder(); sb.AppendFormat( "LogoType:\t{0}\n", LogoType.ToString() ); sb.AppendFormat( "MediaType:\t{0}\n", MediaType ); sb.Append( "Location(s):" ); if( 1 == FileLocations.Count ) { sb.AppendFormat( "\t{0}\n", FileLocations[ 0 ] ); } else { sb.Append( "\n" ); foreach( string s in FileLocations ) { sb.AppendFormat( "{0}\n", s ); } } sb.Append( "\nHash(es)\n" ); foreach( Oid oid in Hashes.Keys ) { sb.AppendFormat( "\nName:\t{0}\nOid:\t{1}\nBytes:\n{2}\n", oid.FriendlyName, oid.Value, Asn1Utilities.ToHexDump( Hashes[ oid ] ) ); } return sb.ToString(); #else return base.ToString(); #endif } protected virtual void OnSerialize( BinaryWriter writer ) { } public void Serialize( BinaryWriter writer ) { writer.Write( (byte)LogoType ); Utility.SerializeString( writer, MediaType ); // // Write the count of hashes. // writer.Write( Hashes.Count ); // // Write each hash. // foreach( Oid hashAlg in Hashes.Keys ) { Utility.SerializeString( writer, hashAlg.Value ); Utility.SerializeBytes( writer, m_fileHashes[ hashAlg ] ); } // // Write the count of file locations. // writer.Write( FileLocations.Count ); // // Write each location. // foreach( string location in FileLocations ) { Utility.SerializeString( writer, location ); } OnSerialize( writer ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DocumentOrderComparer.cs
- LowerCaseStringConverter.cs
- SchemaImporterExtensionElement.cs
- ExpressionPrinter.cs
- PagePropertiesChangingEventArgs.cs
- Wildcard.cs
- NumericUpDownAcceleration.cs
- LinearGradientBrush.cs
- GlobalProxySelection.cs
- TreeNodeStyleCollection.cs
- XmlSerializerVersionAttribute.cs
- BufferedGraphicsContext.cs
- AstNode.cs
- ReadOnlyHierarchicalDataSourceView.cs
- CodeSubDirectoriesCollection.cs
- AutoResetEvent.cs
- WebPartActionVerb.cs
- WebPartHeaderCloseVerb.cs
- FixedLineResult.cs
- SelectionItemProviderWrapper.cs
- Version.cs
- ReadOnlyHierarchicalDataSourceView.cs
- WebConfigurationHost.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- Keywords.cs
- ToolStripLabel.cs
- OdbcParameterCollection.cs
- DescendentsWalkerBase.cs
- FilteredDataSetHelper.cs
- MetadataArtifactLoaderFile.cs
- LowerCaseStringConverter.cs
- CookielessHelper.cs
- MenuItemBinding.cs
- ProgressBarHighlightConverter.cs
- ServiceDesigner.cs
- DataGridLinkButton.cs
- Repeater.cs
- AssemblyBuilder.cs
- VisualTreeUtils.cs
- ImageFormatConverter.cs
- CopyOfAction.cs
- Evidence.cs
- MarkupCompiler.cs
- UserMapPath.cs
- InternalDispatchObject.cs
- DataObjectFieldAttribute.cs
- ScopeElementCollection.cs
- DataSourceSelectArguments.cs
- FileDialog_Vista.cs
- MinMaxParagraphWidth.cs
- SystemUdpStatistics.cs
- CryptoConfig.cs
- UnsafeNativeMethods.cs
- Add.cs
- XmlSubtreeReader.cs
- StringFreezingAttribute.cs
- MessagePropertyFilter.cs
- TailCallAnalyzer.cs
- Container.cs
- FlowLayoutPanel.cs
- Math.cs
- ImageSourceConverter.cs
- XmlUnspecifiedAttribute.cs
- BitStack.cs
- PropertyValueChangedEvent.cs
- WebPartTransformer.cs
- AttachedAnnotationChangedEventArgs.cs
- CodeDefaultValueExpression.cs
- CodeArrayIndexerExpression.cs
- MasterPageParser.cs
- BindValidator.cs
- Matrix3DValueSerializer.cs
- _BaseOverlappedAsyncResult.cs
- Scalars.cs
- returneventsaver.cs
- ArraySegment.cs
- DocumentCollection.cs
- FontClient.cs
- ClientSponsor.cs
- PtsPage.cs
- EntityDataSourceColumn.cs
- ConfigXmlComment.cs
- AsymmetricKeyExchangeDeformatter.cs
- RecordsAffectedEventArgs.cs
- SelectorItemAutomationPeer.cs
- Point3DAnimationUsingKeyFrames.cs
- ChangePassword.cs
- PropertyTabAttribute.cs
- WindowShowOrOpenTracker.cs
- TransformValueSerializer.cs
- NegationPusher.cs
- SqlRewriteScalarSubqueries.cs
- DataGridLinkButton.cs
- XmlRawWriter.cs
- TextElement.cs
- XmlSchemaAttributeGroupRef.cs
- PixelFormatConverter.cs
- HtmlInputControl.cs
- ForAllOperator.cs
- NativeMethods.cs