Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / RC2.cs / 1305376 / RC2.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// [....]
//
//
// RC2.cs
//
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RC2 : SymmetricAlgorithm
{
protected int EffectiveKeySizeValue;
private static KeySizes[] s_legalBlockSizes = {
new KeySizes(64, 64, 0)
};
private static KeySizes[] s_legalKeySizes = {
new KeySizes(40, 1024, 8) // 1024 bits is theoretical max according to the RFC
};
//
// protected constructors
//
protected RC2() {
KeySizeValue = 128;
BlockSizeValue = 64;
FeedbackSizeValue = BlockSizeValue;
LegalBlockSizesValue = s_legalBlockSizes;
LegalKeySizesValue = s_legalKeySizes;
}
//
// public properties
//
public virtual int EffectiveKeySize {
get {
if (EffectiveKeySizeValue == 0) return KeySizeValue;
return EffectiveKeySizeValue;
}
set {
if (value > KeySizeValue) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
} else if (value == 0) {
EffectiveKeySizeValue = value;
} else if (value < 40) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKS40"));
} else {
if (ValidKeySize(value))
EffectiveKeySizeValue = value;
else
throw new CryptographicException(Environment.GetResourceString("Cryptography_InvalidKeySize"));
}
}
}
public override int KeySize {
get { return KeySizeValue; }
set {
if (value < EffectiveKeySizeValue) throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
base.KeySize = value;
}
}
//
// public methods
//
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create(String AlgName) {
return (RC2) CryptoConfig.CreateFromName(AlgName);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// [....]
//
//
// RC2.cs
//
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RC2 : SymmetricAlgorithm
{
protected int EffectiveKeySizeValue;
private static KeySizes[] s_legalBlockSizes = {
new KeySizes(64, 64, 0)
};
private static KeySizes[] s_legalKeySizes = {
new KeySizes(40, 1024, 8) // 1024 bits is theoretical max according to the RFC
};
//
// protected constructors
//
protected RC2() {
KeySizeValue = 128;
BlockSizeValue = 64;
FeedbackSizeValue = BlockSizeValue;
LegalBlockSizesValue = s_legalBlockSizes;
LegalKeySizesValue = s_legalKeySizes;
}
//
// public properties
//
public virtual int EffectiveKeySize {
get {
if (EffectiveKeySizeValue == 0) return KeySizeValue;
return EffectiveKeySizeValue;
}
set {
if (value > KeySizeValue) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
} else if (value == 0) {
EffectiveKeySizeValue = value;
} else if (value < 40) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKS40"));
} else {
if (ValidKeySize(value))
EffectiveKeySizeValue = value;
else
throw new CryptographicException(Environment.GetResourceString("Cryptography_InvalidKeySize"));
}
}
}
public override int KeySize {
get { return KeySizeValue; }
set {
if (value < EffectiveKeySizeValue) throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
base.KeySize = value;
}
}
//
// public methods
//
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create(String AlgName) {
return (RC2) CryptoConfig.CreateFromName(AlgName);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NominalTypeEliminator.cs
- CommandDesigner.cs
- SerializableAttribute.cs
- CacheSection.cs
- ExpressionBuilder.cs
- WindowsMenu.cs
- MeasurementDCInfo.cs
- EntitySqlException.cs
- XsdDateTime.cs
- RootBrowserWindowProxy.cs
- IPCCacheManager.cs
- InteropTrackingRecord.cs
- DataGridTablesFactory.cs
- FunctionNode.cs
- DataTableMapping.cs
- JoinGraph.cs
- ResXResourceSet.cs
- TraceRecord.cs
- PeerNameRecord.cs
- AnnotationDocumentPaginator.cs
- XmlLanguage.cs
- SchemaAttDef.cs
- SpellerError.cs
- SHA1CryptoServiceProvider.cs
- CdpEqualityComparer.cs
- CodePropertyReferenceExpression.cs
- ThumbButtonInfoCollection.cs
- MessageEventSubscriptionService.cs
- DataError.cs
- ThreadNeutralSemaphore.cs
- AccessDataSource.cs
- TransformationRules.cs
- ValidationService.cs
- TableCellCollection.cs
- WebUtil.cs
- Panel.cs
- ConstraintManager.cs
- TextTreeUndo.cs
- CodeArrayCreateExpression.cs
- CleanUpVirtualizedItemEventArgs.cs
- serverconfig.cs
- DragDrop.cs
- EntitySetDataBindingList.cs
- Converter.cs
- ListManagerBindingsCollection.cs
- Propagator.cs
- TextAnchor.cs
- CheckBoxAutomationPeer.cs
- DeferredBinaryDeserializerExtension.cs
- QilXmlWriter.cs
- LoadWorkflowByInstanceKeyCommand.cs
- ProfileParameter.cs
- ResourceManagerWrapper.cs
- Internal.cs
- ClientRolePrincipal.cs
- RenamedEventArgs.cs
- StaticExtension.cs
- StorageEntityContainerMapping.cs
- SqlCacheDependencyDatabase.cs
- EntityDataSourceReferenceGroup.cs
- QilList.cs
- TargetInvocationException.cs
- QilScopedVisitor.cs
- RestClientProxyHandler.cs
- ReadOnlyPropertyMetadata.cs
- PrivacyNoticeBindingElement.cs
- TransportManager.cs
- SelectingProviderEventArgs.cs
- RegisteredExpandoAttribute.cs
- XmlILConstructAnalyzer.cs
- Point3DCollectionConverter.cs
- shaperfactoryquerycachekey.cs
- basecomparevalidator.cs
- StringDictionary.cs
- UrlMappingsModule.cs
- CalendarDateRangeChangingEventArgs.cs
- PasswordTextContainer.cs
- ZipPackage.cs
- Random.cs
- WebPartExportVerb.cs
- Permission.cs
- SQLChars.cs
- AsyncCallback.cs
- InputReferenceExpression.cs
- OneWayChannelListener.cs
- ServiceObjectContainer.cs
- CachedPathData.cs
- Win32MouseDevice.cs
- WindowCollection.cs
- DefinitionBase.cs
- OptimizerPatterns.cs
- LocalizationParserHooks.cs
- DnsPermission.cs
- MessageQueueAccessControlEntry.cs
- sapiproxy.cs
- ContextStack.cs
- InProcStateClientManager.cs
- SwitchAttribute.cs
- ResourcePart.cs
- MimeMultiPart.cs