Description
int
openssl_seal
( string data, string sealed_data, array env_keys, array
pub_key_ids)
openssl_seal(
)
retourne
la
longueur
des
données
scellées
en
cas
de
succès
,
et
FALSE
sinon
.
En
cas
de
succès
,
les
données
scellées
sont
placées
dans
le
paramètre
sealed_data
,
et
les
clés
d
'
enveloppe
dans
env_keys
.
openssl_seal(
)
scelle
(chiffre
)
les
données
data
en
utilisant
l
'algorithme
RC4
avec
une
clé
secrètre
générée
aléatoirement
.
La
clé
est
chiffrée
avec
chaque
clé
publique
associée
à
pub_key_ids
et
chaque
clé
ainsi
encryptée
est
retournée
dans
env_keys
.
Cela
signifique
que
vous
pouvez
envoyez
des
données
scellées
à
plusieurs
destinataires
(
en
supposant
que
chacun
ait
recu
la
clé
publique
)
.
Chaque
destinataire
doit
recevoir
les
données
encryptées
et
la
clé
d
'
enveloppe
,
qui
a
été
encryptée
avec
la
clé
publique
du
destinataire
.
Exemple
1
.
Exemple
avec
openssl_seal(
)
?php
/
/
On
suppose
que
$data
contient
les
données
à
sceller
/
/
lecture
de
la
clé
publique
pour
chaque
destinataire
$fp
=
fopen(
"
/
src
/
openssl-0.9.6
/
demos
/
maurice
/
cert.pem"
,
"r")
;
$cert
=
fread($fp
,
8192)
;
fclose($fp)
;
$pk1
=
openssl_get_publickey($cert)
;
/
/
pour
le
deuxième
destinataire
$fp
=
fopen("
/
src
/
openssl-0.9.6
/
demos
/
sign
/
cert.pem"
,
"r")
;
$cert
=
fread($fp
,
8192)
;
fclose($fp)
;
$pk2
=
openssl_get_publickey($cert)
;
/
/
scelle
le
message
:
seuls
,
les
possessuers
de
$pk1
et
$pk2
peuvent
déchiffrer
/
/
le
message
$sealed
avec
les
clés
$ekeys[0
]
et
$ekeys[1
]
(respectivement)
.
openssl_seal($data
,
$sealed
,
$ekeys
,
array($pk1,$pk2))
;
/
/
libère
les
clés
de
la
mémoire
openssl_free_key($pk1)
;
openssl_free_key($pk2)
;
?
|
|
Voir
aussi
openssl_open(
)
.