aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/es/articles/ipsec-must/_index.po
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/es/articles/ipsec-must/_index.po')
-rw-r--r--documentation/content/es/articles/ipsec-must/_index.po746
1 files changed, 746 insertions, 0 deletions
diff --git a/documentation/content/es/articles/ipsec-must/_index.po b/documentation/content/es/articles/ipsec-must/_index.po
new file mode 100644
index 0000000000..af9d787152
--- /dev/null
+++ b/documentation/content/es/articles/ipsec-must/_index.po
@@ -0,0 +1,746 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# Fernando Apesteguía <fernando.apesteguia@gmail.com>, 2021, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2022-02-01 09:21-0300\n"
+"PO-Revision-Date: 2022-08-08 15:04+0000\n"
+"Last-Translator: Fernando Apesteguía <fernando.apesteguia@gmail.com>\n"
+"Language-Team: Spanish <https://translate-dev.freebsd.org/projects/"
+"documentation/articlesipsec-must_index/es/>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
+
+#. type: Title =
+#: documentation/content/en/articles/ipsec-must/_index.adoc:1
+#: documentation/content/en/articles/ipsec-must/_index.adoc:11
+#, no-wrap
+msgid "Independent Verification of IPsec Functionality in FreeBSD"
+msgstr "Verificación independiente de la funcionalidad de IPsec en FreeBSD"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:44
+msgid "Abstract"
+msgstr "Resumen"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:47
+msgid ""
+"You installed IPsec and it seems to be working. How do you know? I describe "
+"a method for experimentally verifying that IPsec is working."
+msgstr ""
+"Has intalado IPsec y parece estar funcionando. ¿Cómo lo sabes? Describo un "
+"método para verificar de forma experimental que IPsec está funcionando."
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:49
+msgid "'''"
+msgstr "'''"
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:53
+#, no-wrap
+msgid "The Problem"
+msgstr "El Problema"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:58
+msgid ""
+"First, lets assume you have <<ipsec-install>>. How do you know it is "
+"<<caveat>>? Sure, your connection will not work if it is misconfigured, and "
+"it will work when you finally get it right. man:netstat[1] will list it. "
+"But can you independently confirm it?"
+msgstr ""
+"Primero, asumamos que has <<ipsec-install>>. ¿Cómo sabes que está "
+"funcionando? (<<caveat>>) Claro, tu conexión no funcionará si está mal "
+"configurado y funcionará cuando finalmente lo hagas bien. man:netstat[1] lo "
+"mostrará. ¿Pero puedes confirmarlo de forma independiente?"
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:60
+#, no-wrap
+msgid "The Solution"
+msgstr "La Solución"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:63
+msgid "First, some crypto-relevant info theory:"
+msgstr "Primero, alguna información teórica relevante sobre criptografía:"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:65
+msgid ""
+"Encrypted data is uniformly distributed, i.e., has maximal entropy per "
+"symbol;"
+msgstr ""
+"Los datos cifrados se distribuyen uniformemente, es decir, tienen una "
+"entropía máxima por símbolo;"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:66
+msgid ""
+"Raw, uncompressed data is typically redundant, i.e., has sub-maximal entropy."
+msgstr ""
+"Los datos sin procesar y sin comprimir suelen ser redundantes, es decir, "
+"tienen una entropía submáxima."
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:70
+msgid ""
+"Suppose you could measure the entropy of the data to- and from- your network "
+"interface. Then you could see the difference between unencrypted data and "
+"encrypted data. This would be true even if some of the data in \"encrypted "
+"mode\" was not encrypted---as the outermost IP header must be if the packet "
+"is to be routable."
+msgstr ""
+"Imagina que pudieras medir la entropía de los datos que van hacia -y desde- "
+"tu interfaz de red. Entonces podrías ver la diferencia entre los datos no "
+"cifrados y los cifrados. Esto sería verdad incluso si algunos de los datos "
+"en \"modo cifrado\" no lo estuvieran---ya que el encabezado IP más externo "
+"debe estarlo para que el paquete sea enrutable."
+
+#. type: Title ===
+#: documentation/content/en/articles/ipsec-must/_index.adoc:72
+#, no-wrap
+msgid "MUST"
+msgstr "MUST"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:77
+msgid ""
+"Ueli Maurer's \"Universal Statistical Test for Random Bit Generators"
+"\"(https://web.archive.org/web/20011115002319/http://www.geocities.com/"
+"SiliconValley/Code/4704/universal.pdf[MUST]) quickly measures the entropy of "
+"a sample. It uses a compression-like algorithm. <<code>> for a variant "
+"which measures successive (~quarter megabyte) chunks of a file."
+msgstr ""
+"Ueli Maurer's \"Universal Statistical Test for Random Bit Generators\""
+"(https://web.archive.org/web/20011115002319/http://www.geocities.com/"
+"SiliconValley/Code/4704/universal.pdf[MUST]) calcula rápidamente la entropía "
+"de una muestra. Utiliza un algoritmo de tipo compresión. <<code>> para una "
+"variante que mide trozos sucesivos (~ un cuarto de megabyte) de un fichero."
+
+#. type: Title ===
+#: documentation/content/en/articles/ipsec-must/_index.adoc:79
+#, no-wrap
+msgid "Tcpdump"
+msgstr "Tcpdump"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:83
+msgid ""
+"We also need a way to capture the raw network data. A program called man:"
+"tcpdump[1] lets you do this, if you have enabled the _Berkeley Packet "
+"Filter_ interface in your <<kernel>>."
+msgstr ""
+"También necesitamos una forma de capturar datos de red en crudo. Un programa "
+"llamado man:tcpdump[1] te permite hacer esto si tienes configurado el "
+"interfaz _Berkeley Packet Filger_ en tu <<kernel>>."
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:85
+msgid "The command:"
+msgstr "El comando:"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:89
+#, no-wrap
+msgid " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n"
+msgstr " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:93
+msgid ""
+"will capture 4000 raw packets to _dumpfile.bin_. Up to 10,000 bytes per "
+"packet will be captured in this example."
+msgstr ""
+"capturará 4000 paquetes en crudo y los guardará en _dumpfile.bin_. Se "
+"capturarán hasta 10,000 bytes por cada paquete en este ejemplo."
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:95
+#, no-wrap
+msgid "The Experiment"
+msgstr "El Experimento"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:98
+msgid "Here is the experiment:"
+msgstr "Aquí está el experimento:"
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:102
+msgid "Open a window to an IPsec host and another window to an insecure host."
+msgstr "Abre una ventana a un host IPsec y otra ventana a un host inseguro."
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:103
+msgid "Now start <<tcpdump>>."
+msgstr "Ahora arranca <<tcpdump>>."
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:104
+msgid ""
+"In the \"secure\" window, run the UNIX(R) command man:yes[1], which will "
+"stream the `y` character. After a while, stop this. Switch to the insecure "
+"window, and repeat. After a while, stop."
+msgstr ""
+"En la ventana \"segura\", arranca el comando UNIX(R) man:yes[1], que "
+"mostrará continuamente el carácter `y`. Después de un rato, páralo. Cambia a "
+"la ventana insegura y ejecútalo de nuevo. Después de un rato, páralo."
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:105
+msgid ""
+"Now run <<code>> on the captured packets. You should see something like the "
+"following. The important thing to note is that the secure connection has 93% "
+"(6.7) of the expected value (7.18), and the \"normal\" connection has 29% "
+"(2.1) of the expected value."
+msgstr ""
+"Ahora ejecuta <<code>> en los paquetes capturados. Deberías ver algo como lo "
+"que se muestra a continuación. El punto importante en que fijarse es que la "
+"conexión segura tiene un 93% (6.7) de los valores esperados (7.18) y que la "
+"conexión \"normal\" tiene un 29% (2.1) de los valores esperados."
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:121
+#, no-wrap
+msgid ""
+"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n"
+"% uliscan ipsecdemo.bin\n"
+"Uliscan 21 Dec 98\n"
+"L=8 256 258560\n"
+"Measuring file ipsecdemo.bin\n"
+"Init done\n"
+"Expected value for L=8 is 7.1836656\n"
+"6.9396 --------------------------------------------------------\n"
+"6.6177 -----------------------------------------------------\n"
+"6.4100 ---------------------------------------------------\n"
+"2.1101 -----------------\n"
+"2.0838 -----------------\n"
+"2.0983 -----------------\n"
+msgstr ""
+"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n"
+"% uliscan ipsecdemo.bin\n"
+"Uliscan 21 Dec 98\n"
+"L=8 256 258560\n"
+"Measuring file ipsecdemo.bin\n"
+"Init done\n"
+"Expected value for L=8 is 7.1836656\n"
+"6.9396 --------------------------------------------------------\n"
+"6.6177 -----------------------------------------------------\n"
+"6.4100 ---------------------------------------------------\n"
+"2.1101 -----------------\n"
+"2.0838 -----------------\n"
+"2.0983 -----------------\n"
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:125
+#, no-wrap
+msgid "Caveat"
+msgstr "Advertencia"
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:131
+msgid ""
+"This experiment shows that IPsec _does_ seem to be distributing the payload "
+"data __uniformly__, as encryption should. However, the experiment described "
+"here _cannot_ detect many possible flaws in a system (none of which do I "
+"have any evidence for). These include poor key generation or exchange, data "
+"or keys being visible to others, use of weak algorithms, kernel subversion, "
+"etc. Study the source; know the code."
+msgstr ""
+"Este experimento muestra que IPsec _parece_ estar distribuyendo los datos de "
+"la carga útil _uniformemente_, como debe hacerlo el cifrado. Sin embargo, el "
+"experimento aquí descrito _no puede_ detectar muchas de las posibles fallos "
+"del sistema (para los cuales no tengo evidencias). Esto incluye la "
+"generación o intercambio de claves deficientes, datos o claves visibles para "
+"otros, uso de algoritmos débiles, subversión del kernel, etc. Estudia el "
+"código; conoce el código."
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:133
+#, no-wrap
+msgid "IPsec---Definition"
+msgstr "IPsec---Definición"
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:139
+msgid ""
+"Internet Protocol security extensions to IPv4; required for IPv6. A "
+"protocol for negotiating encryption and authentication at the IP (host-to-"
+"host) level. SSL secures only one application socket; SSH secures only a "
+"login; PGP secures only a specified file or message. IPsec encrypts "
+"everything between two hosts."
+msgstr ""
+"Extensiones de seguridad del Protocolo de Internet para IPv4; requerido para "
+"IPv6. Un protocolo para negociar el cifrado y la autenticación a nivel de IP "
+"(host a host). SSL solo protege un socket de aplicación. SSH protege solo el "
+"login. PGP protege un archivo o mensaje específico. IPsec encripta todo "
+"entre dos hosts."
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:141
+#, no-wrap
+msgid "Installing IPsec"
+msgstr "Instalando IPsec"
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:145
+msgid ""
+"Most of the modern versions of FreeBSD have IPsec support in their base "
+"source. So you will need to include the `IPSEC` option in your kernel "
+"config and, after kernel rebuild and reinstall, configure IPsec connections "
+"using man:setkey[8] command."
+msgstr ""
+"La mayoría de las versiones modernas de FreeBSD tienen soporte para IPsec en "
+"su código fuente. Así que tendrás que incluir la opción `IPSEC` en la "
+"configuración del kernel y después de recompilar y reinstalar, configurar "
+"conexiones IPsec utilizando el comando man:setkey[8]."
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:147
+msgid ""
+"A comprehensive guide on running IPsec on FreeBSD is provided in extref:"
+"{handbook}[FreeBSD Handbook, ipsec]."
+msgstr ""
+"En el extref:{handbook}[FreeBSD Handbook, ipsec] se proporciona una guía "
+"completa sobre cómo ejecutar IPsec en FreeBSD."
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:149
+#, no-wrap
+msgid "src/sys/i386/conf/KERNELNAME"
+msgstr "src/sys/i386/conf/KERNELNAME"
+
+#. type: delimited block = 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:153
+msgid ""
+"This needs to be present in the kernel config file in order to capture "
+"network data with man:tcpdump[1]. Be sure to run man:config[8] after adding "
+"this, and rebuild and reinstall."
+msgstr ""
+"Esto necesita estar en el fichero de configuración del kernel para poder "
+"capturar datos de red con man:tcpdump[1]. Asegúrate de ejecutar man:config[8]"
+" después de añadir esto y recompilar y reinstalar."
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:157
+#, no-wrap
+msgid "device\tbpf\n"
+msgstr "device\tbpf\n"
+
+#. type: Title ==
+#: documentation/content/en/articles/ipsec-must/_index.adoc:160
+#, no-wrap
+msgid "Maurer's Universal Statistical Test (for block size=8 bits)"
+msgstr "Maurer's Universal Statistical Test (tamaño de bloque=8 bits)"
+
+#. type: Plain text
+#: documentation/content/en/articles/ipsec-must/_index.adoc:163
+msgid ""
+"You can find the same code at https://web.archive.org/web/20031204230654/"
+"http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[this link]."
+msgstr ""
+"Puedes encontrar el mismo código en https://web.archive.org/web/"
+"20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc."
+"txt[este enlace]."
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:168
+#, no-wrap
+msgid ""
+"/*\n"
+" ULISCAN.c ---blocksize of 8\n"
+msgstr ""
+"/*\n"
+" ULISCAN.c ---blocksize of 8\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:172
+#, no-wrap
+msgid ""
+" 1 Oct 98\n"
+" 1 Dec 98\n"
+" 21 Dec 98 uliscan.c derived from ueli8.c\n"
+msgstr ""
+" 1 Oct 98\n"
+" 1 Dec 98\n"
+" 21 Dec 98 uliscan.c derived from ueli8.c\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:174
+#, no-wrap
+msgid " This version has // comments removed for Sun cc\n"
+msgstr " En esta versión se han quitado // comentarios por el cc de Sun\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:177
+#, no-wrap
+msgid ""
+" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n"
+" Bit Generators\" using L=8\n"
+msgstr ""
+" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n"
+" Bit Generators\" using L=8\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:180
+#, no-wrap
+msgid ""
+" Accepts a filename on the command line; writes its results, with other\n"
+" info, to stdout.\n"
+msgstr ""
+" Accepts a filename on the command line; writes its results, with other\n"
+" info, to stdout.\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:182
+#, no-wrap
+msgid " Handles input file exhaustion gracefully.\n"
+msgstr " Handles input file exhaustion gracefully.\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:185
+#, no-wrap
+msgid ""
+" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n"
+" also on the web somewhere, which is where I found it.\n"
+msgstr ""
+" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n"
+" also on the web somewhere, which is where I found it.\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:188
+#, no-wrap
+msgid ""
+" -David Honig\n"
+" honig@sprynet.com\n"
+msgstr ""
+" -David Honig\n"
+" honig@sprynet.com\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:193
+#, no-wrap
+msgid ""
+" Usage:\n"
+" ULISCAN filename\n"
+" outputs to stdout\n"
+"*/\n"
+msgstr ""
+" Usage:\n"
+" ULISCAN filename\n"
+" outputs to stdout\n"
+"*/\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:199
+#, no-wrap
+msgid ""
+"#define L 8\n"
+"#define V (1<<L)\n"
+"#define Q (10*V)\n"
+"#define K (100 *Q)\n"
+"#define MAXSAMP (Q + K)\n"
+msgstr ""
+"#define L 8\n"
+"#define V (1<<L)\n"
+"#define Q (10*V)\n"
+"#define K (100 *Q)\n"
+"#define MAXSAMP (Q + K)\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:202
+#, no-wrap
+msgid ""
+"#include <stdio.h>\n"
+"#include <math.h>\n"
+msgstr ""
+"#include <stdio.h>\n"
+"#include <math.h>\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:214
+#, no-wrap
+msgid ""
+"int main(argc, argv)\n"
+"int argc;\n"
+"char **argv;\n"
+"{\n"
+" FILE *fptr;\n"
+" int i,j;\n"
+" int b, c;\n"
+" int table[V];\n"
+" double sum = 0.0;\n"
+" int iproduct = 1;\n"
+" int run;\n"
+msgstr ""
+"int main(argc, argv)\n"
+"int argc;\n"
+"char **argv;\n"
+"{\n"
+" FILE *fptr;\n"
+" int i,j;\n"
+" int b, c;\n"
+" int table[V];\n"
+" double sum = 0.0;\n"
+" int iproduct = 1;\n"
+" int run;\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:216
+#, no-wrap
+msgid " extern double log(/* double x */);\n"
+msgstr " extern double log(/* double x */);\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:218
+#, no-wrap
+msgid " printf(\"Uliscan 21 Dec 98 \\nL=%d %d %d \\n\", L, V, MAXSAMP);\n"
+msgstr ""
+" printf(\"Uliscan 21 Dec 98 \\n"
+"L=%d %d %d \\n"
+"\", L, V, MAXSAMP);\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:225
+#, no-wrap
+msgid ""
+" if (argc < 2) {\n"
+" printf(\"Usage: Uliscan filename\\n\");\n"
+" exit(-1);\n"
+" } else {\n"
+" printf(\"Measuring file %s\\n\", argv[1]);\n"
+" }\n"
+msgstr ""
+" if (argc < 2) {\n"
+" printf(\"Usage: Uliscan filename\\n"
+"\");\n"
+" exit(-1);\n"
+" } else {\n"
+" printf(\"Measuring file %s\\n"
+"\", argv[1]);\n"
+" }\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:227
+#, no-wrap
+msgid " fptr = fopen(argv[1],\"rb\");\n"
+msgstr " fptr = fopen(argv[1],\"rb\");\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:232
+#, no-wrap
+msgid ""
+" if (fptr == NULL) {\n"
+" printf(\"Can't find %s\\n\", argv[1]);\n"
+" exit(-1);\n"
+" }\n"
+msgstr ""
+" if (fptr == NULL) {\n"
+" printf(\"Can't find %s\\n"
+"\", argv[1]);\n"
+" exit(-1);\n"
+" }\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:236
+#, no-wrap
+msgid ""
+" for (i = 0; i < V; i++) {\n"
+" table[i] = 0;\n"
+" }\n"
+msgstr ""
+" for (i = 0; i < V; i++) {\n"
+" table[i] = 0;\n"
+" }\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:241
+#, no-wrap
+msgid ""
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" table[b] = i;\n"
+" }\n"
+msgstr ""
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" table[b] = i;\n"
+" }\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:243
+#, no-wrap
+msgid " printf(\"Init done\\n\");\n"
+msgstr ""
+" printf(\"Init done\\n"
+"\");\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:245
+#, no-wrap
+msgid " printf(\"Expected value for L=8 is 7.1836656\\n\");\n"
+msgstr ""
+" printf(\"Expected value for L=8 is 7.1836656\\n"
+"\");\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:247
+#, no-wrap
+msgid " run = 1;\n"
+msgstr " run = 1;\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:251
+#, no-wrap
+msgid ""
+" while (run) {\n"
+" sum = 0.0;\n"
+" iproduct = 1;\n"
+msgstr ""
+" while (run) {\n"
+" sum = 0.0;\n"
+" iproduct = 1;\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:256
+#, no-wrap
+msgid ""
+" if (run)\n"
+" for (i = Q; run && i < Q + K; i++) {\n"
+" j = i;\n"
+" b = fgetc(fptr);\n"
+msgstr ""
+" if (run)\n"
+" for (i = Q; run && i < Q + K; i++) {\n"
+" j = i;\n"
+" b = fgetc(fptr);\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:259
+#, no-wrap
+msgid ""
+" if (b < 0)\n"
+" run = 0;\n"
+msgstr ""
+" if (b < 0)\n"
+" run = 0;\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:263
+#, no-wrap
+msgid ""
+" if (run) {\n"
+" if (table[b] > j)\n"
+" j += K;\n"
+msgstr ""
+" if (run) {\n"
+" if (table[b] > j)\n"
+" j += K;\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:265
+#, no-wrap
+msgid " sum += log((double)(j-table[b]));\n"
+msgstr " sum += log((double)(j-table[b]));\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:269
+#, no-wrap
+msgid ""
+" table[b] = i;\n"
+" }\n"
+" }\n"
+msgstr ""
+" table[b] = i;\n"
+" }\n"
+" }\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:272
+#, no-wrap
+msgid ""
+" if (!run)\n"
+" printf(\"Premature end of file; read %d blocks.\\n\", i - Q);\n"
+msgstr ""
+" if (!run)\n"
+" printf(\"Premature end of file; read %d blocks.\\n"
+"\", i - Q);\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:275
+#, no-wrap
+msgid ""
+" sum = (sum/((double)(i - Q))) / log(2.0);\n"
+" printf(\"%4.4f \", sum);\n"
+msgstr ""
+" sum = (sum/((double)(i - Q))) / log(2.0);\n"
+" printf(\"%4.4f \", sum);\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:278
+#, no-wrap
+msgid ""
+" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n"
+" printf(\"-\");\n"
+msgstr ""
+" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n"
+" printf(\"-\");\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:280
+#, no-wrap
+msgid " printf(\"\\n\");\n"
+msgstr ""
+" printf(\"\\n"
+"\");\n"
+
+#. type: delimited block . 4
+#: documentation/content/en/articles/ipsec-must/_index.adoc:294
+#, no-wrap
+msgid ""
+" /* refill initial table */\n"
+" if (0) {\n"
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" if (b < 0) {\n"
+" run = 0;\n"
+" } else {\n"
+" table[b] = i;\n"
+" }\n"
+" }\n"
+" }\n"
+" }\n"
+"}\n"
+msgstr ""
+" /* refill initial table */\n"
+" if (0) {\n"
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" if (b < 0) {\n"
+" run = 0;\n"
+" } else {\n"
+" table[b] = i;\n"
+" }\n"
+" }\n"
+" }\n"
+" }\n"
+"}\n"
+
+#~ msgid ""
+#~ "include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/"
+#~ "{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists."
+#~ "adoc[] include::shared/{{% lang %}}/urls.adoc[]"
+#~ msgstr ""
+#~ "include::shared/attributes/attributes-{{% lang %}}.adoc[]\n"
+#~ "include::shared/{{% lang %}}/teams.adoc[]\n"
+#~ "include::shared/{{% lang %}}/mailing-lists.adoc[]\n"
+#~ "include::shared/{{% lang %}}/urls.adoc[]"