Freigeben über


CryptoProvider Klasse

Definition

Stellt DRM-Dienste (Digital Rights Management) zum Verschlüsseln und Entschlüsseln von geschütztem Inhalt bereit.

public ref class CryptoProvider : IDisposable
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public class CryptoProvider : IDisposable
public class CryptoProvider : IDisposable
[<System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)>]
type CryptoProvider = class
    interface IDisposable
type CryptoProvider = class
    interface IDisposable
Public Class CryptoProvider
Implements IDisposable
Vererbung
CryptoProvider
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt, wie Sie die CryptoProvider -Klasse verwenden, um eine EncryptedPackageEnvelopezu erstellen.

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

Hinweise

CryptoProvider wird als Ergebnis der Bind -Methode erstellt, wenn eine verwaltete UseLicense Rechte an eine SecureEnvironmentgebunden wird.

Wie bei anderen System.Security.RightsManagement Typen CryptoProvider kann nur in voll vertrauenswürdigen Anwendungen verwendet werden.

Eigenschaften

BlockSize

Ruft die Verschlüsselungsblockgröße in Bytes ab.

BoundGrants

Ruft eine Auflistung von Rechten ab, die erfolgreich überprüft und dem Benutzer gewährt wurden.

CanDecrypt

Ruft einen Wert ab, der angibt, ob der Benutzer über Entschlüsselungsrechte verfügt.

CanEncrypt

Ruft einen Wert ab, der angibt, ob der Benutzer über Verschlüsselungsrechte verfügt.

CanMergeBlocks

Ruft einen Wert ab, der angibt, ob Encrypt(Byte[]) und Decrypt(Byte[]) Puffer mit unterschiedlichen Blockgrößen akzeptieren.

Methoden

Decrypt(Byte[])

Entschlüsselt verschlüsselten Text.

Dispose()

Gibt alle vom CryptoProvider verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von CryptoProvider verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Encrypt(Byte[])

Verschlüsselt Klartext in Verschlüsselungstext.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Gibt Ressourcen frei und führt eine interne Bereinigung durch, bevor die Instanz durch die Garbage Collection wieder freigegeben wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen