Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MIP Koruması SDK'sında, mip::ProtectionHandler korumalı akışları ve arabellekleri şifreleme ve şifrelerini çözme, erişim denetimleri gerçekleştirme, yayımlama lisansını alma ve korunan bilgilerden öznitelikleri alma işlevlerini kullanıma sunar.
Gereksinimler
Belirli bir ProtectionHandler dosyayla çalışmak için şunlar gerekir:
- Bir
mip::MipContext - Bir
mip::ProtectionProfile -
mip::ProtectionEngineProtectionProfileöğesine eklendi - Devralan bir sınıf
mip::ProtectionHandler::Observer - Bir
mip::ProtectionDescriptorveya yayımlama lisansı
Koruma işleyicisi oluşturma
mip::ProtectionHandler nesneleri koruma veya tüketim işlemleri için oluşturulur. İşleyici, senaryoya bağlı olarak dört işlevden biri kullanılarak oluşturulur.
mip::ProtectionEngine->CreateProtectionHandlerForConsumptionAsync()mip::ProtectionEngine->CreateProtectionHandlerForConsumption()mip::ProtectionEngine->CreateProtectionHandlerForPublishingAsync()mip::ProtectionEngine->CreateProtectionHandlerForPublishing()
Bu işlevler bir mip::ProtectionHandler::PublishingSettings veya mip::ProtectionHandler::ConsumptionSettings nesnesini kabul eder.
Yayımlama işleyicisi oluşturma
Yayımlama işleyicisi oluşturmak için üç adım gerekir:
- Bir
mip::ProtectionDescriptornesne oluşturun. -
mip::ProtectionDescriptorkullanarakmip::ProtectionHandler::PublishingSettingsörneğini oluşturun. -
mip::ProtectionEngine::CreateProtectionHandlerForPublishingAsync()nesnesini, gözlemciyi ve promise'i geçerekPublishingSettingsçağrısını yapın.
Tanımlayıcıdan oluşturma
Henüz korunmamış içeriği korumak veya şifresi çözülen içeriğe yeni koruma uygulamak için bir mip::ProtectionDescriptoroluşturur.
mip::ProtectionHandler::PublishingSettings() nesnesinin örneğini oluşturmak için bunu kullanın. SDK, sonucu mip::ProtectionHandler::Observer aracılığıyla döndürür.
// Create the protection descriptor, passing in a templateId.
auto descriptorBuilder = mip::ProtectionDescriptorBuilder::CreateFromTemplate(protectionOptions.templateId);
std::shared_ptr<mip::ProtectionDescriptor> descriptor = descriptorBuilder->Build();
// Define the handler promise, future, and observer.
auto handlerPromise = std::make_shared<std::promise<std::shared_ptr<mip::ProtectionHandler>>>();
auto handlerFuture = handlerPromise->get_future();
auto handlerObserver = std::make_shared<ProtectionHandlerObserverImpl>();
// Create the PublishingSettings object using the previously-created descriptor as input.
mip::ProtectionHandler::PublishingSettings publishingSettings = mip::ProtectionHandler::PublishingSettings(descriptor);
// Create/get the publishing handler from the publishing settings, observer, and promise.
mEngine->CreateProtectionHandlerForPublishingAsync(publishingSettings, handlerObserver, handlerPromise);
auto handler = handlerFuture.get();
return handler;
Nesneyi başarıyla oluşturduktan ProtectionHandler sonra şifreleme ve şifre çözme için koruma işlemleri gerçekleştirebilirsiniz. İşleyiciden yayımlama lisansını getirin ve şifrelenmiş içerikle depolayın. Yayımlama lisansını almak için handler->GetSerializedPublishingLicense(); çağrısını yapın.
İlgili yayımlama lisansı olmadan korumalı içeriğin şifresini çözemezsiniz .
Tüketim işleyicisini oluşturma
Tüketim işleyicisi oluşturmak için üç adım gerekir:
- Korumalı içerikten
std::vector<uint8_t>formatında serileştirilmiş bir yayımlama lisansı ayıklayın. -
mip::ProtectionHandler::ConsumptionSettingsörneklenmesini sağlamak için serileştirilmiş yayımlama lisansını kullanın. -
mip::ProtectionEngine::CreateProtectionHandlerForConsumptionAsync()nesnesini, gözlemciyi ve promise'i geçerekConsumptionSettingsçağrısını yapın.
Bu örnekte, yayımlama lisansının bir kaynaktan zaten okunduğu ve içinde std::vector<uint8_t> serializedPublishingLicensedepolandığı varsayılır.
//TODO: Implement GetPublishingLicense()
//Snip implies that function reads PL from source file, database, stream, etc.
std::vector<uint8_t> serializedPublishingLicense = GetPublishingLicense(filePath);
// Define the handler promise, future, and observer.
auto handlerPromise = std::make_shared<std::promise<std::shared_ptr<mip::ProtectionHandler>>>();
auto handlerFuture = handlerPromise->get_future();
shared_ptr<ProtectionHandlerObserverImpl> handlerObserver = std::make_shared<ProtectionHandlerObserverImpl>();
// Create the consumption settings object from the publishing license.
mip::ProtectionHandler::ConsumptionSettings consumptionSettings = mip::ProtectionHandler::ConsumptionSettings(serializedPublishingLicense);
// Create/get the publishing handler from the publishing settings, observer, and promise.
mEngine->CreateProtectionHandlerForConsumptionAsync(consumptionSettings, handlerObserver, handlerPromise);
auto handler = handlerFuture.get();
Sonraki Adımlar
- Örnek için GitHub'de MIP Koruma SDK'sı C++ örneğine bakın.