From 9d32f18f0a1886e379d3550a9afd638c5b8d4515 Mon Sep 17 00:00:00 2001 From: leonardolara Date: Tue, 19 Nov 2024 22:58:25 -0300 Subject: [PATCH] initial translation in openssl/functions --- .../functions/openssl-random-pseudo-bytes.xml | 170 ++++++++++++++ reference/openssl/functions/openssl-seal.xml | 207 ++++++++++++++++++ reference/openssl/functions/openssl-sign.xml | 194 ++++++++++++++++ 3 files changed, 571 insertions(+) create mode 100644 reference/openssl/functions/openssl-random-pseudo-bytes.xml create mode 100644 reference/openssl/functions/openssl-seal.xml create mode 100644 reference/openssl/functions/openssl-sign.xml diff --git a/reference/openssl/functions/openssl-random-pseudo-bytes.xml b/reference/openssl/functions/openssl-random-pseudo-bytes.xml new file mode 100644 index 000000000..6a85a7841 --- /dev/null +++ b/reference/openssl/functions/openssl-random-pseudo-bytes.xml @@ -0,0 +1,170 @@ + + + + + openssl_random_pseudo_bytes + Gera uma sequência pseudo-aleatória de bytes + + + + &reftitle.description; + + stringopenssl_random_pseudo_bytes + intlength + boolstrong_result&null; + + + Gera uma string de bytes pseudo-aleatórios, com o número de bytes + determinado pelo parâmetro length. + + + Também indica se um algoritmo criptograficamente forte foi usado para produzir os + bytes pseudo-aleatórios, e faz isso através do parâmetro opcional strong_result. + É raro que isso seja &false;, mas alguns sistemas podem estar quebrados ou antigos. + + + + + &reftitle.parameters; + + + + length + + + O comprimento da sequência de bytes desejada. Deve ser um número inteiro positivo menor ou igual a 2147483647. + O PHP tentará converter este parâmetro em um número inteiro não nulo para usá-lo. + + + + + strong_result + + + Se passado para a função, conterá um valor bool que determina + se o algoritmo usado era "criptograficamente forte", por exemplo, seguro para uso com GPG, + senhas, etc. &true; se sim, caso contrário &false;. + + + + + + + + + &reftitle.returnvalues; + + Retorna a &string; de bytes gerada. + + + + + &reftitle.errors; + + openssl_random_pseudo_bytes lança uma Exception + em caso de falha. + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + strong_result agora pode ser nulo. + + + + 7.4.0 + + A função não retorna mais &false; em caso de falha, mas em vez disso lança uma Exception. + + + + + + + + &reftitle.examples; + + + Exemplo de <function>openssl_random_pseudo_bytes</function> + + +]]> + + &example.outputs.similar; + + + + + + + + + &reftitle.seealso; + + random_bytes + bin2hex + crypt + random_int + + + + diff --git a/reference/openssl/functions/openssl-seal.xml b/reference/openssl/functions/openssl-seal.xml new file mode 100644 index 000000000..1f38fa9f2 --- /dev/null +++ b/reference/openssl/functions/openssl-seal.xml @@ -0,0 +1,207 @@ + + + + + openssl_seal + Sela (criptografa) dados + + + + &reftitle.description; + + intfalseopenssl_seal + #[\SensitiveParameter]stringdata + stringsealed_data + arrayencrypted_keys + arraypublic_key + stringcipher_algo + stringiv&null; + + + openssl_seal sela (criptografa) os dados de data usando o + algoritmo de criptografia cipher_algo com uma chave secreta gerada aleatoriamente. A chave é + então criptografada com cada uma das chaves públicas no array public_key, + e cada chave de envelope criptografada é retornada em encrypted_keys. Isso permite + que dados selados sejam enviados a vários destinatários (desde que suas chaves públicas estejam disponíveis). Cada + destinatário deve receber os dados selados e a chave do envelope que foi criptografada com a + chave pública do destinatário. O IV (Vetor de Inicialização) é gerado e seu valor é retornado em + iv. + + + + + &reftitle.parameters; + + + + data + + + Os dados a serem selados. + + + + + sealed_data + + + Os dados selados. + + + + + encrypted_keys + + + Array de chaves criptografadas. + + + + + public_key + + + Array de instâncias de OpenSSLAsymmetricKey contendo chaves públicas. + + + + + cipher_algo + + + O método de criptografia. + + + O valor padrão para versões do PHP anteriores a 8.0 é ('RC4') que é + considerado inseguro. É altamente recomendável especificar explicitamente um método de + criptografia seguro. + + + + + + + iv + + + O vetor de inicialização para descriptografia de data. É necessário se + o método de criptografia exigir IV. Isso pode ser descoberto chamando + openssl_cipher_iv_length com cipher_algo. + + + + O IV não pode ser definido explicitamente. Qualquer valor definido nele é substituído por um valor gerado + aleatoriamente. + + + + + + + + + + &reftitle.returnvalues; + + Retorna o comprimento dos dados selados em caso de sucesso ou &false; em caso de erro. + Se for bem-sucedido, os dados selados serão retornados em + sealed_data e as chaves do envelope em + encrypted_keys. + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + public_key agora aceita um &array; de + instâncias de OpenSSLAsymmetricKey; + anteriormente, um &array; de &resource;s do tipo OpenSSL key + era aceito. + + + + 8.0.0 + + cipher_algo não é mais um parâmetro opcional. + + + + 8.0.0 + + iv agora pode ser nulo. + + + + + + + + + &reftitle.examples; + + + Exemplo de <function>openssl_seal</function> + + 0) { + // possivelmente armazena os valores $sealed e $iv e usa mais tarde em openssl_open + echo "sucesso\n"; +} +?> +]]> + + + + + + + &reftitle.seealso; + + + openssl_open + + + + + + diff --git a/reference/openssl/functions/openssl-sign.xml b/reference/openssl/functions/openssl-sign.xml new file mode 100644 index 000000000..0a1d4e9b4 --- /dev/null +++ b/reference/openssl/functions/openssl-sign.xml @@ -0,0 +1,194 @@ + + + + + openssl_sign + Gera assinatura + + + + &reftitle.description; + + boolopenssl_sign + stringdata + stringsignature + #[\SensitiveParameter]OpenSSLAsymmetricKeyOpenSSLCertificatearraystringprivate_key + stringintalgorithmOPENSSL_ALGO_SHA1 + + + openssl_sign calcula uma assinatura para os dados + informados em data gerando uma assinatura digital + criptográfica usando a chave privada associada a + private_key. Observe que os dados em si + não são criptografados. + + + + + &reftitle.parameters; + + + + data + + + A string de dados a ser assinada. + + + + + signature + + + Se a chamada for bem-sucedida, a assinatura será retornada em + signature. + + + + + private_key + + + OpenSSLAsymmetricKey - uma chave, retornada por openssl_get_privatekey + + + string - uma chave no formato PEM + + + + + algorithm + + + int - um destes Algoritmos de Assinatura. + + + string - uma string válida retornada por openssl_get_md_methods, por exemplo, "sha256WithRSAEncryption" ou "sha384". + + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + private_key agora aceita uma instância de OpenSSLAsymmetricKey + ou OpenSSLCertificate; + anteriormente, um &resource; do tipo OpenSSL key ou OpenSSL X.509 + era aceito. + + + + + + + + + &reftitle.examples; + + + Exemplo de <function>openssl_sign</function> + + +]]> + + + + Exemplo de <function>openssl_sign</function> + + 2048, + "private_key_type" => OPENSSL_KEYTYPE_RSA, +)); +openssl_pkey_export($new_key_pair, $private_key_pem); + +$details = openssl_pkey_get_details($new_key_pair); +$public_key_pem = $details['key']; + +// cria assinatura +openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256); + +// grava para mais tarde +file_put_contents('private_key.pem', $private_key_pem); +file_put_contents('public_key.pem', $public_key_pem); +file_put_contents('signature.dat', $signature); + +// verifica assinatura +$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption"); +var_dump($r); +?> +]]> + + + + + + + + &reftitle.seealso; + + + openssl_verify + + + + + +