PGP: Environment protection for UNIX

Stig stig at netcom.com
Tue May 25 23:45:43 PDT 1993



I wrote:
> 
> 
> 	main (int argn, char **argv, char **envv)
> 	{
> 	    for ( ; *envv ; ++envv) {
> 	        if (!strncmp(*envv,"PGP",3)) {
> 	            char *c=*envv;
> 	            while (*c) *c++=' ';
> 	        } /* end of if */
> 	    } /* end of for */
> 	    system("printenv");
> 	    sleep(10);
> 	}
> 

And I should've enclosed it in #ifdef STUPID ... #endif.  I misread
the putenv(3) man page and didn't realize that you could just use 

	putenv("PGPPATH=");
	putenv("PGPPASS=");

To wipe those variables out of your environment...  They still might
get caught by a 'ps -eaxuww' but chances are slim.  Is it posible to
alter your arguments so they're not visible to 'ps -auxww'?

Well as a matter of fact, it does seems to work on my sparcstation:

        main (int argn, char **argv, char **envv)
        {
            system("ps -uww");
        
            for (;*argv;++argv) {
                while (**argv) {
                    *(*argv)++ = ' ';
                } /* end of while */
            } /* end of for */
        
            puts("--------------------------------");
            system("ps -uww");
        }

Not elegant, but that's what makes it a GLP (grungy little program).

So, is there a more elegant way to do this?  How portable is it?
Finally, of how much use is it?

	Stig
    

/* Jonathan Stigelman, Stig at netcom.com, PGP public key on request */
/* fingerprint = 32 DF B9 19 AE 28 D1 7A  A3 9D 0B 1A 33 13 4D 7F */






More information about the cypherpunks-legacy mailing list