Esempio n. 1
0
 public function initMultipartUploadSecurely($args = array())
 {
     $sek = EncryptionUtil::genereateOnceUsedKey();
     $encryptedSek = EncryptionUtil::encodeCek($this->encryptionMaterials, $sek);
     $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
     $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
     $matdesc = "{}";
     if (ENCRYPTPTION_STORAGE_MODE == "ObjectMetadata") {
         $args["UserMeta"]["x-kss-meta-x-kss-key"] = base64_encode($encryptedSek);
         $args["UserMeta"]["x-kss-meta-x-kss-iv"] = base64_encode($iv);
         $args["UserMeta"]["x-kss-meta-x-kss-matdesc"] = $matdesc;
     }
     $initResult = $this->ks3client->initMultipartUpload($args);
     EncryptionUtil::initMultipartUploadContext($initResult, $iv, $sek, $encryptedSek, $matdesc);
     return $initResult;
 }