--- libc/manual/string.texi.ark 2009-06-01 12:55:40.215888658 +0000 +++ libc/manual/string.texi 2009-06-01 12:56:52.832546231 +0000 @@ -33,8 +33,6 @@ too. * Search Functions:: Searching for a specific element or substring. * Finding Tokens in a String:: Splitting a string into tokens by looking for delimiters. -* strfry:: Function for flash-cooking a string. -* Trivial Encryption:: Obscuring data. * Encode Binary Data:: Encoding and Decoding of Binary Data. * Argz and Envz Vectors:: Null-separated string vectors. @end menu @@ -2210,73 +2208,6 @@ contains no '/' characters, then "." is function can be found in @file{libgen.h}. @end deftypefun -@node strfry -@section strfry - -The function below addresses the perennial programming quandary: ``How do -I take good data in string form and painlessly turn it into garbage?'' -This is actually a fairly simple task for C programmers who do not use -the GNU C library string functions, but for programs based on the GNU C -library, the @code{strfry} function is the preferred method for -destroying string data. - -The prototype for this function is in @file{string.h}. - -@comment string.h -@comment GNU -@deftypefun {char *} strfry (char *@var{string}) - -@code{strfry} creates a pseudorandom anagram of a string, replacing the -input with the anagram in place. For each position in the string, -@code{strfry} swaps it with a position in the string selected at random -(from a uniform distribution). The two positions may be the same. - -The return value of @code{strfry} is always @var{string}. - -@strong{Portability Note:} This function is unique to the GNU C library. - -@end deftypefun - - -@node Trivial Encryption -@section Trivial Encryption -@cindex encryption - - -The @code{memfrob} function converts an array of data to something -unrecognizable and back again. It is not encryption in its usual sense -since it is easy for someone to convert the encrypted data back to clear -text. The transformation is analogous to Usenet's ``Rot13'' encryption -method for obscuring offensive jokes from sensitive eyes and such. -Unlike Rot13, @code{memfrob} works on arbitrary binary data, not just -text. -@cindex Rot13 - -For true encryption, @xref{Cryptographic Functions}. - -This function is declared in @file{string.h}. -@pindex string.h - -@comment string.h -@comment GNU -@deftypefun {void *} memfrob (void *@var{mem}, size_t @var{length}) - -@code{memfrob} transforms (frobnicates) each byte of the data structure -at @var{mem}, which is @var{length} bytes long, by bitwise exclusive -oring it with binary 00101010. It does the transformation in place and -its return value is always @var{mem}. - -Note that @code{memfrob} a second time on the same data structure -returns it to its original state. - -This is a good function for hiding information from someone who doesn't -want to see it or doesn't want to see it very much. To really prevent -people from retrieving the information, use stronger encryption such as -that described in @xref{Cryptographic Functions}. - -@strong{Portability Note:} This function is unique to the GNU C library. - -@end deftypefun @node Encode Binary Data @section Encode Binary Data --- libc/string/Makefile.ark 2009-06-01 12:53:04.589232822 +0000 +++ libc/string/Makefile 2009-06-01 12:53:22.449230397 +0000 @@ -36,7 +36,7 @@ routines := strcat strchr strcmp strcoll mempcpy bcopy bzero ffs ffsll stpcpy stpncpy \ strcasecmp strncase strcasecmp_l strncase_l \ memccpy memcpy wordcopy strsep strcasestr \ - swab strfry memfrob memmem rawmemchr strchrnul \ + swab memmem rawmemchr strchrnul \ $(addprefix argz-,append count create ctsep next \ delete extract insert stringify \ addsep replace) \ @@ -56,7 +56,7 @@ strop-tests := memchr memcmp memcpy memm tests := tester inl-tester noinl-tester testcopy test-ffs \ tst-strlen stratcliff tst-svc tst-inlcall \ bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ - tst-strtok tst-strfry \ + tst-strtok \ bug-strtok1 $(addprefix test-,$(strop-tests)) \ tst-strxfrm2 tst-endian tst-svc2 tests-$(OPTION_EGLIBC_ENVZ) += bug-envz1 --- libc/string/string.h.ark 2009-06-01 12:55:13.699218522 +0000 +++ libc/string/string.h 2009-06-01 12:55:32.945887166 +0000 @@ -584,12 +584,6 @@ extern char *stpncpy (char *__restrict _ extern int strverscmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); -/* Sautee STRING briskly. */ -extern char *strfry (char *__string) __THROW __nonnull ((1)); - -/* Frobnicate N bytes of S. */ -extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1)); - # ifndef basename /* Return the file name within directory of FILENAME. We don't declare the function if the `basename' macro is available (defined --- libc/string/Versions.ark 2009-06-01 12:54:58.002553787 +0000 +++ libc/string/Versions 2009-06-01 12:55:07.719225116 +0000 @@ -29,14 +29,14 @@ libc { index; # m* - memccpy; memchr; memcmp; memcpy; memfrob; memmem; memmove; memset; + memccpy; memchr; memcmp; memcpy; memmem; memmove; memset; # r* rindex; # s* stpcpy; stpncpy; strcasecmp; strcat; strchr; strcmp; strcoll; strcpy; - strcspn; strdup; strerror; strerror_r; strfry; strlen; strncasecmp; + strcspn; strdup; strerror; strerror_r; strlen; strncasecmp; strncat; strncmp; strncpy; strndup; strnlen; strpbrk; strrchr; strsep; strsignal; strspn; strstr; strtok; strtok_r; strxfrm; swab; }