CryptoProvider 클래스

정의

보호된 콘텐츠를 암호화 및 해독하기 위한 디지털 권한 관리 서비스를 제공합니다.Provides digital rights management services for encrypting and decrypting protected content.

public ref class CryptoProvider : IDisposable
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public class CryptoProvider : IDisposable
type CryptoProvider = class
    interface IDisposable
Public Class CryptoProvider
Implements IDisposable
상속
CryptoProvider
특성
구현

예제

다음 예제에서는 사용 하는 방법을 보여 줍니다 합니다 CryptoProvider 만들 클래스를 EncryptedPackageEnvelope입니다.The following example shows how to use the CryptoProvider class to create an EncryptedPackageEnvelope.

WriteStatus("   Signing the UnsignedPublishLicense\n" +
            "       to build the PublishLicense.");
UseLicense authorsUseLicense;
PublishLicense publishLicense =
    unsignedLicense.Sign(_secureEnv, out authorsUseLicense);

WriteStatus("   Binding the author's UseLicense and");
WriteStatus("       obtaining the CryptoProvider.");
CryptoProvider cryptoProvider = authorsUseLicense.Bind(_secureEnv);

WriteStatus("   Creating the EncryptedPackage.");
Stream packageStream = File.OpenRead(packageFile);
EncryptedPackageEnvelope ePackage =
    EncryptedPackageEnvelope.CreateFromPackage(encryptedFile,
        packageStream, publishLicense, cryptoProvider);

WriteStatus("   Adding an author's UseLicense.");
RightsManagementInformation rmi =
    ePackage.RightsManagementInformation;
rmi.SaveUseLicense(author, authorsUseLicense);

ePackage.Close();
WriteStatus("   Done - Package encryption complete.");

WriteStatus("Verifying package encryption.");
if (EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile))
{
    WriteStatus("   Confirmed - '" + encryptedFilename +
                "' is encrypted.");
}
else
{
    MessageBox.Show("ERROR: '" + encryptedFilename +
        "' is NOT ENCRYPTED.", "Encryption Error",
        MessageBoxButton.OK, MessageBoxImage.Error);
    WriteStatus("ERROR: '" + encryptedFilename +
                "' is NOT ENCRYPTED.\n");
    return false;
}
WriteStatus("   Signing the UnsignedPublishLicense" & vbLf & "       to build the PublishLicense.")
Dim authorsUseLicense As UseLicense = Nothing
Dim publishLicense As PublishLicense = unsignedLicense.Sign(_secureEnv, authorsUseLicense)

WriteStatus("   Binding the author's UseLicense and")
WriteStatus("       obtaining the CryptoProvider.")
Dim cryptoProvider As CryptoProvider = authorsUseLicense.Bind(_secureEnv)

WriteStatus("   Creating the EncryptedPackage.")
Dim packageStream As Stream = File.OpenRead(packageFile)
Dim ePackage As EncryptedPackageEnvelope = EncryptedPackageEnvelope.CreateFromPackage(encryptedFile, packageStream, publishLicense, cryptoProvider)

WriteStatus("   Adding an author's UseLicense.")
Dim rmi As RightsManagementInformation = ePackage.RightsManagementInformation
rmi.SaveUseLicense(author, authorsUseLicense)

ePackage.Close()
WriteStatus("   Done - Package encryption complete.")

WriteStatus("Verifying package encryption.")
If EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile) Then
    WriteStatus("   Confirmed - '" & encryptedFilename & "' is encrypted.")
Else
    MessageBox.Show("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED.", "Encryption Error", MessageBoxButton.OK, MessageBoxImage.Error)
    WriteStatus("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED." & vbLf)
    Return False
End If

설명

CryptoProvider 결과로 생성 됩니다는 Bind 메서드는 권한 바인딩 관리 되는 경우 UseLicenseSecureEnvironment합니다.CryptoProvider is created as a result of the Bind method when binding a rights managed UseLicense to a SecureEnvironment.

다른와 마찬가지로 System.Security.RightsManagement 형식을 CryptoProvider 완전 신뢰 애플리케이션에만 유용 합니다.As with other System.Security.RightsManagement types, CryptoProvider is only usable in full trust applications.

속성

BlockSize

암호화 블록 크기를 바이트 단위로 가져옵니다.Gets the cipher block size, in bytes.

BoundGrants

확인 과정을 거쳐 사용자에게 부여된 권한을 나열하는 컬렉션을 가져옵니다.Gets a collection listing the rights that passed verification and that are granted to the user.

CanDecrypt

사용자에게 암호 해독 권한이 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the user has rights to decrypt.

CanEncrypt

사용자에게 암호화 권한이 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the user has rights to encrypt.

CanMergeBlocks

Encrypt(Byte[])Decrypt(Byte[])에 블록 크기의 길이가 서로 다른 버퍼를 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether Encrypt(Byte[]) and Decrypt(Byte[]) can accept buffers that are different block sizes in length.

메서드

Decrypt(Byte[])

암호화 텍스트를 일반 텍스트로 해독합니다.Decrypts cipher text to clear text.

Dispose()

CryptoProvider에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the CryptoProvider.

Dispose(Boolean)

CryptoProvider에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the CryptoProvider and optionally releases the managed resources.

Encrypt(Byte[])

일반 텍스트를 암호화 텍스트로 암호화합니다.Encrypts clear text to cipher text.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
Finalize()

가비지 컬렉션에 의해 인스턴스가 회수되기 전에 리소스를 해제하고 내부 정리를 수행합니다.Frees resources and performs internal cleanup before the instance is reclaimed by garbage collection.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상

추가 정보