/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * PURPOSE: Security descriptor functions * FILE: lib/ntdll/rtl/encode.c * PROGRAMMER: KJK::Hyperion * REVISION HISTORY: * 02/04/2003: created (code contributed by crazylord * ) */ /* INCLUDES *****************************************************************/ #include #include /* FUNCTIONS ***************************************************************/ VOID NTAPI RtlRunDecodeUnicodeString( IN UCHAR hash, IN OUT PUNICODE_STRING uString ) { UCHAR *ptr; WORD i; ptr = (UCHAR *) uString->Buffer; if (uString->Length > 1) { for (i=uString->Length; i>1; i--) { ptr[i-1] ^= ptr[i-2] ^ hash; } } if (uString->Length >= 1) { ptr[0] ^= hash | (UCHAR) 0x43; } } VOID NTAPI RtlRunEncodeUnicodeString( IN OUT PUCHAR hash, IN OUT PUNICODE_STRING uString ) { NTSTATUS ntS; UCHAR *ptr; TIME CurrentTime; WORD i; ptr = (UCHAR *) uString->Buffer; if (*hash == 0) { ntS = NtQuerySystemTime((PLARGE_INTEGER)&CurrentTime); if (NT_SUCCESS(ntS)) { for (i=1; iLength >= 1) { ptr[0] ^= (*hash) | (UCHAR) 0x43; if (uString->Length > 1) { for (i=1; iLength; i++) { ptr[i] ^= ptr[i-1] ^ (*hash); } } } } /* EOF */