CryptedPreferences
Publié : ven. 25/juin/2010 22:20
Bonjour à tous,
Je me suis un peu amusé cet après-midi à combiner la libraire standard Préférences de PB avec l'algorithme PukallCipher et voici le prototype résultant.
Le code est sur deux fichiers, désolé...
A+
Guimauve
Je me suis un peu amusé cet après-midi à combiner la libraire standard Préférences de PB avec l'algorithme PukallCipher et voici le prototype résultant.
Le code est sur deux fichiers, désolé...
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À
; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!!
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Code généré par : Dev-Type V2.0.0
; Nom du projet : PukallCipher algorithm
; Nom du fichier : PukallCipher.pbi
; Version du fichier : 1.0.1
; Programmation : OK
; Programmé par : Alexander Pukall
; Modifié par : Guimauve
; Date : 11-06-2009
; Mise à jour : 09-05-2010
; Codé pour PureBasic V4.50
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Constantes Niveau Sécurité <<<<<
#PUKALLCIPHER_LEVEL_LOW = 64
#PUKALLCIPHER_LEVEL_GOOD = 128
#PUKALLCIPHER_LEVEL_HIGH = 256
#PUKALLCIPHER_LEVEL_EXTREME = 512
#PUKALLCIPHER_LEVEL_INFERNAL = 1024
#PUKALLCIPHER_LEVEL_INSANE = 2048
#PUKALLCIPHER_LEVEL_RIDICULOUS = 4096
#PUKALLCIPHER_LEVEL_LUDICROUS = 8192
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Constantes de dimensionnement <<<<<
#PUKALLCIPHER_X1A0_MAX = 512
#PUKALLCIPHER_CLE_MAX = 1024
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure <<<<<
Structure PukallCipher
Level.w
Ax.l
Bx.l
cx.l
dx.l
Si.l
X1A2.l
Res.l
Counter.l
Inter.l
X1A0.l[#PUKALLCIPHER_X1A0_MAX]
Cle.c[#PUKALLCIPHER_CLE_MAX]
X1A0Max.l
CleMax.l
BufferLength.l
Char.c
Rep.c
Dxx.c
Exx.c
Cfc.l
Cfd.l
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs <<<<<
Macro GetPukallCipherLevel(PukallCipherA)
PukallCipherA\Level
EndMacro
Macro GetPukallCipherAx(PukallCipherA)
PukallCipherA\Ax
EndMacro
Macro GetPukallCipherBx(PukallCipherA)
PukallCipherA\Bx
EndMacro
Macro GetPukallCiphercx(PukallCipherA)
PukallCipherA\cx
EndMacro
Macro GetPukallCipherdx(PukallCipherA)
PukallCipherA\dx
EndMacro
Macro GetPukallCipherSi(PukallCipherA)
PukallCipherA\Si
EndMacro
Macro GetPukallCipherX1A2(PukallCipherA)
PukallCipherA\X1A2
EndMacro
Macro GetPukallCipherRes(PukallCipherA)
PukallCipherA\Res
EndMacro
Macro GetPukallCipherCounter(PukallCipherA)
PukallCipherA\Counter
EndMacro
Macro GetPukallCipherInter(PukallCipherA)
PukallCipherA\Inter
EndMacro
Macro GetPukallCipherX1A0(PukallCipherA, Index)
PukallCipherA\X1A0[Index]
EndMacro
Macro GetPukallCipherCle(PukallCipherA, Index)
PukallCipherA\Cle[Index]
EndMacro
Macro GetPukallCipherX1A0Max(PukallCipherA)
PukallCipherA\X1A0Max
EndMacro
Macro GetPukallCipherCleMax(PukallCipherA)
PukallCipherA\CleMax
EndMacro
Macro GetPukallCipherBufferLength(PukallCipherA)
PukallCipherA\BufferLength
EndMacro
Macro GetPukallCipherChar(PukallCipherA)
PukallCipherA\Char
EndMacro
Macro GetPukallCipherRep(PukallCipherA)
PukallCipherA\Rep
EndMacro
Macro GetPukallCipherDxx(PukallCipherA)
PukallCipherA\Dxx
EndMacro
Macro GetPukallCipherExx(PukallCipherA)
PukallCipherA\Exx
EndMacro
Macro GetPukallCipherCfc(PukallCipherA)
PukallCipherA\Cfc
EndMacro
Macro GetPukallCipherCfd(PukallCipherA)
PukallCipherA\Cfd
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs <<<<<
Macro SetPukallCipherLevel(PukallCipherA, P_Level)
GetPukallCipherLevel(PukallCipherA) = P_Level
EndMacro
Macro SetPukallCipherAx(PukallCipherA, P_Ax)
GetPukallCipherAx(PukallCipherA) = P_Ax
EndMacro
Macro SetPukallCipherBx(PukallCipherA, P_Bx)
GetPukallCipherBx(PukallCipherA) = P_Bx
EndMacro
Macro SetPukallCiphercx(PukallCipherA, P_cx)
GetPukallCiphercx(PukallCipherA) = P_cx
EndMacro
Macro SetPukallCipherdx(PukallCipherA, P_dx)
GetPukallCipherdx(PukallCipherA) = P_dx
EndMacro
Macro SetPukallCipherSi(PukallCipherA, P_Si)
GetPukallCipherSi(PukallCipherA) = P_Si
EndMacro
Macro SetPukallCipherX1A2(PukallCipherA, P_X1A2)
GetPukallCipherX1A2(PukallCipherA) = P_X1A2
EndMacro
Macro SetPukallCipherRes(PukallCipherA, P_Res)
GetPukallCipherRes(PukallCipherA) = P_Res
EndMacro
Macro SetPukallCipherCounter(PukallCipherA, P_Counter)
GetPukallCipherCounter(PukallCipherA) = P_Counter
EndMacro
Macro SetPukallCipherInter(PukallCipherA, P_Inter)
GetPukallCipherInter(PukallCipherA) = P_Inter
EndMacro
Macro SetPukallCipherX1A0(PukallCipherA, Index, P_X1A0)
GetPukallCipherX1A0(PukallCipherA, Index) = P_X1A0
EndMacro
Macro SetPukallCipherCle(PukallCipherA, Index, P_Cle)
GetPukallCipherCle(PukallCipherA, Index) = P_Cle
EndMacro
Macro SetPukallCipherX1A0Max(PukallCipherA, P_X1A0Max)
GetPukallCipherX1A0Max(PukallCipherA) = P_X1A0Max
EndMacro
Macro SetPukallCipherCleMax(PukallCipherA, P_CleMax)
GetPukallCipherCleMax(PukallCipherA) = P_CleMax
EndMacro
Macro SetPukallCipherBufferLength(PukallCipherA, P_BufferLength)
GetPukallCipherBufferLength(PukallCipherA) = P_BufferLength
EndMacro
Macro SetPukallCipherChar(PukallCipherA, P_Char)
GetPukallCipherChar(PukallCipherA) = P_Char
EndMacro
Macro SetPukallCipherRep(PukallCipherA, P_Rep)
GetPukallCipherRep(PukallCipherA) = P_Rep
EndMacro
Macro SetPukallCipherDxx(PukallCipherA, P_Dxx)
GetPukallCipherDxx(PukallCipherA) = P_Dxx
EndMacro
Macro SetPukallCipherExx(PukallCipherA, P_Exx)
GetPukallCipherExx(PukallCipherA) = P_Exx
EndMacro
Macro SetPukallCipherCfc(PukallCipherA, P_Cfc)
GetPukallCipherCfc(PukallCipherA) = P_Cfc
EndMacro
Macro SetPukallCipherCfd(PukallCipherA, P_Cfd)
GetPukallCipherCfd(PukallCipherA) = P_Cfd
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Reset <<<<<
Macro ResetPukallCipher(PukallCipherA)
SetPukallCipherLevel(PukallCipherA, 0)
SetPukallCipherAx(PukallCipherA, 0)
SetPukallCipherBx(PukallCipherA, 0)
SetPukallCiphercx(PukallCipherA, 0)
SetPukallCipherdx(PukallCipherA, 0)
SetPukallCipherSi(PukallCipherA, 0)
SetPukallCipherX1A2(PukallCipherA, 0)
SetPukallCipherRes(PukallCipherA, 0)
SetPukallCipherCounter(PukallCipherA, 0)
SetPukallCipherInter(PukallCipherA, 0)
For Index = 0 To #PUKALLCIPHER_X1A0_MAX - 1
SetPukallCipherX1A0(PukallCipherA, Index, 0)
Next
For Index = 0 To #PUKALLCIPHER_CLE_MAX - 1
SetPukallCipherCle(PukallCipherA, Index, 0)
Next
SetPukallCipherX1A0Max(PukallCipherA, 0)
SetPukallCipherCleMax(PukallCipherA, 0)
SetPukallCipherBufferLength(PukallCipherA, 0)
SetPukallCipherChar(PukallCipherA, 0)
SetPukallCipherRep(PukallCipherA, 0)
SetPukallCipherDxx(PukallCipherA, 0)
SetPukallCipherExx(PukallCipherA, 0)
SetPukallCipherCfc(PukallCipherA, 0)
SetPukallCipherCfd(PukallCipherA, 0)
; ClearStructure(PukallCipherA, PukallCipher)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.013 secondes (26846.15 lignes/seconde) <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Macro Private_PukallCipherCode(PukallCipherA)
SetPukallCipherDx(PukallCipherA, GetPukallCipherX1A2(PukallCipherA) + GetPukallCipherCounter(PukallCipherA))
SetPukallCipherAx(PukallCipherA, GetPukallCipherX1A0(PukallCipherA, GetPukallCipherCounter(PukallCipherA)))
SetPukallCipherBx(PukallCipherA, $015A)
SetPukallCipherCx(PukallCipherA, $4E35)
Swap GetPukallCipherAx(PukallCipherA), GetPukallCipherSi(PukallCipherA)
Swap GetPukallCipherAx(PukallCipherA), GetPukallCipherDx(PukallCipherA)
If GetPukallCipherAx(PukallCipherA) <> 0
SetPukallCipherAx(PukallCipherA, GetPukallCipherAx(PukallCipherA) * GetPukallCipherBx(PukallCipherA))
EndIf
Swap GetPukallCipherAx(PukallCipherA), GetPukallCipherCx(PukallCipherA)
If GetPukallCipherAx(PukallCipherA) <> 0
SetPukallCipherAx(PukallCipherA, GetPukallCipherAx(PukallCipherA) * GetPukallCipherSi(PukallCipherA))
SetPukallCipherAx(PukallCipherA, GetPukallCipherAx(PukallCipherA) + GetPukallCipherCx(PukallCipherA))
EndIf
Swap GetPukallCipherAx(PukallCipherA), GetPukallCipherSi(PukallCipherA)
SetPukallCipherAx(PukallCipherA, GetPukallCipherAx(PukallCipherA) * GetPukallCipherBx(PukallCipherA))
SetPukallCipherDx(PukallCipherA, GetPukallCipherCx(PukallCipherA) + GetPukallCipherDx(PukallCipherA))
SetPukallCipherAx(PukallCipherA, GetPukallCipherAx(PukallCipherA) + 1)
SetPukallCipherX1A2(PukallCipherA, GetPukallCipherDx(PukallCipherA))
SetPukallCipherX1A0(PukallCipherA, GetPukallCipherCounter(PukallCipherA), GetPukallCipherAx(PukallCipherA))
SetPukallCipherCounter(PukallCipherA, GetPukallCipherCounter(PukallCipherA) + 1)
SetPukallCipherRes(PukallCipherA, GetPukallCipherAx(PukallCipherA) ! GetPukallCipherDx(PukallCipherA))
EndMacro
Macro Private_PukallCipherAssemble(PukallCipherA)
SetPukallCipherX1A0(PukallCipherA, 0, GetPukallCipherCle(PukallCipherA, 0) * GetPukallCipherLevel(PukallCipherA) + GetPukallCipherCle(PukallCipherA, 1))
Private_PukallCipherCode(PukallCipherA)
SetPukallCipherInter(PukallCipherA, GetPukallCipherRes(PukallCipherA))
KeyIndex = 2
For Index = 1 To GetPukallCipherX1A0Max(PukallCipherA) - 1
SetPukallCipherX1A0(PukallCipherA, Index, GetPukallCipherX1A0(PukallCipherA, Index - 1) ! GetPukallCipherCle(PukallCipherA, KeyIndex) * GetPukallCipherLevel(PukallCipherA) + GetPukallCipherCle(PukallCipherA, KeyIndex + 1))
Private_PukallCipherCode(PukallCipherA)
SetPukallCipherInter(PukallCipherA, GetPukallCipherInter(PukallCipherA) ! GetPukallCipherRes(PukallCipherA))
KeyIndex + 2
Next
SetPukallCipherCounter(PukallCipherA, 0)
EndMacro
Procedure.s PukallCipherNormalizedKey(P_Password.s, P_Level.w)
Length = Len(P_Password)
If Length = 0
Length = 1
P_Password = " "
EndIf
NormalizedKey.s = MD5Fingerprint(@P_Password, Length)
Select P_Level
Case #PUKALLCIPHER_LEVEL_LOW ; 8 Characters
NormalizedKey = Left(NormalizedKey, 8)
Case #PUKALLCIPHER_LEVEL_GOOD ; 16 Characters
NormalizedKey = Left(NormalizedKey, 16)
Case #PUKALLCIPHER_LEVEL_HIGH ; 32 Characters
NormalizedKey = NormalizedKey
Case #PUKALLCIPHER_LEVEL_EXTREME ; 64 Characters
NormalizedKey = NormalizedKey + MD5Fingerprint(@NormalizedKey, Len(NormalizedKey))
Case #PUKALLCIPHER_LEVEL_INFERNAL ; 128 Characters
For Index = 0 To 2
NormalizedKey = NormalizedKey + MD5Fingerprint(@NormalizedKey, Len(NormalizedKey))
Next
Case #PUKALLCIPHER_LEVEL_INSANE ; 256 Characters
For Index = 0 To 6
NormalizedKey = NormalizedKey + MD5Fingerprint(@NormalizedKey, Len(NormalizedKey))
Next
Case #PUKALLCIPHER_LEVEL_RIDICULOUS ; 512 Characters
For Index = 0 To 14
NormalizedKey = NormalizedKey + MD5Fingerprint(@NormalizedKey, Len(NormalizedKey))
Next
Case #PUKALLCIPHER_LEVEL_LUDICROUS ; 1024 Characters
For Index = 0 To 30
NormalizedKey = NormalizedKey + MD5Fingerprint(@NormalizedKey, Len(NormalizedKey))
Next
Default ; #PUKALLCIPHER_LEVEL_GOOD ; 16 Characters
NormalizedKey = Left(NormalizedKey, 16)
EndSelect
ProcedureReturn NormalizedKey
EndProcedure
Procedure.s PukallCipherEncrypt(P_Key.s, P_Buffer.s, P_Level.w) ; P_Key - 1024 Characters Max
Select P_Level
Case #PUKALLCIPHER_LEVEL_LOW
SetPukallCipherLevel(PukallCipher.PukallCipher, #PUKALLCIPHER_LEVEL_LOW)
SetPukallCipherX1A0Max(PukallCipher, 4)
SetPukallCipherCleMax(PukallCipher, 8)
Case #PUKALLCIPHER_LEVEL_GOOD
SetPukallCipherLevel(PukallCipher.PukallCipher, #PUKALLCIPHER_LEVEL_GOOD)
SetPukallCipherX1A0Max(PukallCipher, 8)
SetPukallCipherCleMax(PukallCipher, 16)
Case #PUKALLCIPHER_LEVEL_HIGH
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_HIGH)
SetPukallCipherX1A0Max(PukallCipher, 16)
SetPukallCipherCleMax(PukallCipher, 32)
Case #PUKALLCIPHER_LEVEL_EXTREME
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_EXTREME)
SetPukallCipherX1A0Max(PukallCipher, 32)
SetPukallCipherCleMax(PukallCipher, 64)
Case #PUKALLCIPHER_LEVEL_INFERNAL
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_INFERNAL)
SetPukallCipherX1A0Max(PukallCipher, 64)
SetPukallCipherCleMax(PukallCipher, 128)
Case #PUKALLCIPHER_LEVEL_INSANE
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_INSANE)
SetPukallCipherX1A0Max(PukallCipher, 128)
SetPukallCipherCleMax(PukallCipher, 256)
Case #PUKALLCIPHER_LEVEL_RIDICULOUS
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_RIDICULOUS)
SetPukallCipherX1A0Max(PukallCipher, 256)
SetPukallCipherCleMax(PukallCipher, 512)
Case #PUKALLCIPHER_LEVEL_LUDICROUS
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_LUDICROUS)
SetPukallCipherX1A0Max(PukallCipher, 512)
SetPukallCipherCleMax(PukallCipher, 1024)
Default
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_GOOD)
SetPukallCipherX1A0Max(PukallCipher, 8)
SetPukallCipherCleMax(PukallCipher, 16)
EndSelect
For KeyIndex = 0 To GetPukallCipherCleMax(PukallCipher) - 1
SetPukallCipherCle(PukallCipher, KeyIndex, Asc(Mid(P_Key, KeyIndex + 1,1)))
Next
SetPukallCipherSi(PukallCipher, 0)
SetPukallCipherX1A2(PukallCipher, 0)
SetPukallCipherCounter(PukallCipher, 0)
SetPukallCipherBufferLength(PukallCipher, Len(P_Buffer) - 1)
For BufferIndex = 0 To GetPukallCipherBufferLength(PukallCipher)
SetPukallCipherChar(PukallCipher, Asc(Mid(P_Buffer, BufferIndex + 1,1)))
Private_PukallCipherAssemble(PukallCipher)
SetPukallCipherCfc(PukallCipher, GetPukallCipherInter(PukallCipher) >> 8)
SetPukallCipherCfd(PukallCipher, GetPukallCipherInter(PukallCipher) & 255)
For KeyIndex = 0 To GetPukallCipherCleMax(PukallCipher) - 1
SetPukallCipherCle(PukallCipher, KeyIndex, GetPukallCipherCle(PukallCipher, KeyIndex) ! GetPukallCipherChar(PukallCipher))
Next
SetPukallCipherChar(PukallCipher, GetPukallCipherChar(PukallCipher) ! (GetPukallCipherCfc(PukallCipher) ! GetPukallCipherCfd(PukallCipher)))
SetPukallCipherDxx(PukallCipher, GetPukallCipherChar(PukallCipher) >> 4)
SetPukallCipherExx(PukallCipher, GetPukallCipherChar(PukallCipher) & 15)
CryptedBuffer.s + Chr($61 + GetPukallCipherDxx(PukallCipher))
CryptedBuffer + Chr($61 + GetPukallCipherExx(PukallCipher))
Next
ResetPukallCipher(PukallCipher)
ProcedureReturn CryptedBuffer
EndProcedure
Procedure.s PukallCipherDecrypt(P_Key.s, P_Buffer.s, P_Level.w) ; P_Key - 1024 Characters Max
Select P_Level
Case #PUKALLCIPHER_LEVEL_LOW
SetPukallCipherLevel(PukallCipher.PukallCipher, #PUKALLCIPHER_LEVEL_LOW)
SetPukallCipherX1A0Max(PukallCipher, 4)
SetPukallCipherCleMax(PukallCipher, 8)
Case #PUKALLCIPHER_LEVEL_GOOD
SetPukallCipherLevel(PukallCipher.PukallCipher, #PUKALLCIPHER_LEVEL_GOOD)
SetPukallCipherX1A0Max(PukallCipher, 8)
SetPukallCipherCleMax(PukallCipher, 16)
Case #PUKALLCIPHER_LEVEL_HIGH
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_HIGH)
SetPukallCipherX1A0Max(PukallCipher, 16)
SetPukallCipherCleMax(PukallCipher, 32)
Case #PUKALLCIPHER_LEVEL_EXTREME
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_EXTREME)
SetPukallCipherX1A0Max(PukallCipher, 32)
SetPukallCipherCleMax(PukallCipher, 64)
Case #PUKALLCIPHER_LEVEL_INFERNAL
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_INFERNAL)
SetPukallCipherX1A0Max(PukallCipher, 64)
SetPukallCipherCleMax(PukallCipher, 128)
Case #PUKALLCIPHER_LEVEL_INSANE
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_INSANE)
SetPukallCipherX1A0Max(PukallCipher, 128)
SetPukallCipherCleMax(PukallCipher, 256)
Case #PUKALLCIPHER_LEVEL_RIDICULOUS
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_RIDICULOUS)
SetPukallCipherX1A0Max(PukallCipher, 256)
SetPukallCipherCleMax(PukallCipher, 512)
Case #PUKALLCIPHER_LEVEL_LUDICROUS
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_LUDICROUS)
SetPukallCipherX1A0Max(PukallCipher, 512)
SetPukallCipherCleMax(PukallCipher, 1024)
Default
SetPukallCipherLevel(PukallCipher, #PUKALLCIPHER_LEVEL_GOOD)
SetPukallCipherX1A0Max(PukallCipher, 8)
SetPukallCipherCleMax(PukallCipher, 16)
EndSelect
For KeyIndex = 0 To GetPukallCipherCleMax(PukallCipher) - 1
SetPukallCipherCle(PukallCipher, KeyIndex, Asc(Mid(P_Key, KeyIndex + 1, 1)))
Next
SetPukallCipherSi(PukallCipher, 0)
SetPukallCipherX1A2(PukallCipher, 0)
SetPukallCipherCounter(PukallCipher, 0)
SetPukallCipherBufferLength(PukallCipher, Len(P_Buffer) - 1)
For BufferIndex = 0 To GetPukallCipherBufferLength(PukallCipher) Step 2
SetPukallCipherRep(PukallCipher, Asc(Mid(P_Buffer, BufferIndex + 1, 1)))
SetPukallCipherDxx(PukallCipher, GetPukallCipherRep(PukallCipher) - $61)
SetPukallCipherDxx(PukallCipher, GetPukallCipherDxx(PukallCipher) << 4)
SetPukallCipherRep(PukallCipher, Asc(Mid(P_Buffer, BufferIndex + 2, 1)))
SetPukallCipherExx(PukallCipher, GetPukallCipherRep(PukallCipher) - $61)
SetPukallCipherChar(PukallCipher, GetPukallCipherDxx(PukallCipher) + GetPukallCipherExx(PukallCipher))
Private_PukallCipherAssemble(PukallCipher)
SetPukallCipherCfc(PukallCipher, GetPukallCipherInter(PukallCipher) >> 8)
SetPukallCipherCfd(PukallCipher, GetPukallCipherInter(PukallCipher) & 255)
SetPukallCipherChar(PukallCipher, GetPukallCipherChar(PukallCipher) ! (GetPukallCipherCfc(PukallCipher) ! GetPukallCipherCfd(PukallCipher)))
For KeyIndex = 0 To GetPukallCipherCleMax(PukallCipher) - 1
SetPukallCipherCle(PukallCipher, KeyIndex, GetPukallCipherCle(PukallCipher, KeyIndex) ! GetPukallCipherChar(PukallCipher))
Next
DecryptedBuffer.s + Chr(GetPukallCipherChar(PukallCipher))
Next
ResetPukallCipher(PukallCipher)
ProcedureReturn DecryptedBuffer
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À
; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!!
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Code généré par : Dev-Type V2.0.0
; Nom du projet : CryptedPreference
; Nom du fichier : CryptedPreference.pb
; Version du fichier : 1.0.0
; Programmation : OK - Prototype
; Programmé par : Guimauve
; Date : 25-06-2010
; Mise à jour : 25-06-2010
; Code PureBasic : 4.50
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
IncludeFile "PukallCipher.pbi"
Enumeration
#CRYPTED_PREFERENCES_STYLE_EVERYTHING
#CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
EndEnumeration
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure <<<<<
Structure CryptedPreferences
Style.b
Password.s
Level.l
NormalizedKey.s
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs <<<<<
Macro GetCryptedPreferencesStyle(CryptedPreferenceA)
CryptedPreferenceA\Style
EndMacro
Macro GetCryptedPreferencesPassword(CryptedPreferenceA)
CryptedPreferenceA\Password
EndMacro
Macro GetCryptedPreferencesLevel(CryptedPreferenceA)
CryptedPreferenceA\Level
EndMacro
Macro GetCryptedPreferencesNormalizedKey(CryptedPreferenceA)
CryptedPreferenceA\NormalizedKey
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs <<<<<
Macro SetCryptedPreferencesStyle(CryptedPreferenceA, P_Style)
GetCryptedPreferencesStyle(CryptedPreferenceA) = P_Style
EndMacro
Macro SetCryptedPreferencesPassword(CryptedPreferenceA, P_Password)
GetCryptedPreferencesPassword(CryptedPreferenceA) = P_Password
EndMacro
Macro SetCryptedPreferencesLevel(CryptedPreferenceA, P_Level)
GetCryptedPreferencesLevel(CryptedPreferenceA) = P_Level
EndMacro
Macro SetCryptedPreferencesNormalizedKey(CryptedPreferenceA, P_NormalizedKey)
GetCryptedPreferencesNormalizedKey(CryptedPreferenceA) = P_NormalizedKey
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Reset <<<<<
Macro ResetCryptedPreferences(CryptedPreferenceA)
SetCryptedPreferencesStyle(CryptedPreferenceA, 0)
SetCryptedPreferencesPassword(CryptedPreferenceA, "")
SetCryptedPreferencesLevel(CryptedPreferenceA, 0)
SetCryptedPreferencesNormalizedKey(CryptedPreferenceA, "")
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Macro de déboguage <<<<<
Macro DebugCryptedPreferences(CryptedPreferenceA)
Debug GetCryptedPreferencesStyle(CryptedPreferenceA)
Debug GetCryptedPreferencesPassword(CryptedPreferenceA)
Debug GetCryptedPreferencesLevel(CryptedPreferenceA)
Debug GetCryptedPreferencesNormalizedKey(CryptedPreferenceA)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.008 secondes (15625.00 lignes/seconde) <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les opérateurs WriteCryptedPreference <<<<<
Procedure WriteCryptedPreferenceLong(Key.s, Value.l)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
Procedure WriteCryptedPreferenceInteger(Key.s, Value.i)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
Procedure WriteCryptedPreferenceQuad(Key.s, Value.q)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
Procedure WriteCryptedPreferenceFloat(Key.s, Value.f)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), StrF(Value, 6), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), StrF(Value, 6), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
Procedure WriteCryptedPreferenceDouble(Key.s, Value.d)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), StrD(Value, 12), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), StrD(Value, 12), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
Procedure WriteCryptedPreferenceString(Key.s, Value.s)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Value, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Value, GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(OutKey, OutValue)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les opérateurs ReadCryptedPreference <<<<<
Procedure.l ReadCryptedPreferenceLong(Key.s, Value.l)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.l = Val(PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences)))
ProcedureReturn ReturnValue
EndProcedure
Procedure.i ReadCryptedPreferenceInteger(Key.s, Value.i)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.i = Val(PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences)))
ProcedureReturn ReturnValue
EndProcedure
Procedure.q ReadCryptedPreferenceQuad(Key.s, Value.q)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.q = Val(PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences)))
ProcedureReturn ReturnValue
EndProcedure
Procedure.f ReadCryptedPreferenceFloat(Key.s, Value.f)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.f = ValF(PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences)))
ProcedureReturn ReturnValue
EndProcedure
Procedure.d ReadCryptedPreferenceDouble(Key.s, Value.d)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Str(Value), GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.d = ValD(PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences)))
ProcedureReturn ReturnValue
EndProcedure
Procedure.s ReadCryptedPreferenceString(Key.s, Value.s)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Value, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
OutValue.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Value, GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
ReturnValue.s = PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), ReadPreferenceString(OutKey, OutValue), GetCryptedPreferencesLevel(CryptedPreferences))
ProcedureReturn ReturnValue
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedPreferenceGroup <<<<<
Procedure CryptedPreferenceGroup(Name.s)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutName.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Name, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutName.s = Name
EndSelect
PreferenceGroup(OutName)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedPreferenceGroupName <<<<<
Procedure.s CryptedPreferenceGroupName()
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutName.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), PreferenceGroupName(), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutName.s = PreferenceGroupName()
EndSelect
ProcedureReturn OutName
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedPreferenceKeyName <<<<<
Procedure.s CryptedPreferenceKeyName()
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutName.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), PreferenceKeyName(), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutName.s = PreferenceKeyName()
EndSelect
ProcedureReturn OutName
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedPreferenceKeyValue <<<<<
Procedure.s CryptedPreferenceKeyValue()
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutName.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), PreferenceKeyValue(), GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutName.s = PreferenceKeyValue()
EndSelect
ProcedureReturn OutName
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedRemovePreferenceKey <<<<<
Procedure CryptedRemovePreferenceKey(Key.s)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutKey.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Key, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutKey.s = Key
EndSelect
RemovePreferenceKey(OutKey)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CryptedPreferenceComment <<<<<
Procedure CryptedPreferenceComment(Text.s)
Shared CryptedPreferences.CryptedPreferences
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
OutName.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), Text, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
OutName.s = Text
EndSelect
PreferenceComment(OutName)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Initialize <<<<<
Procedure InitializeCryptedPreferences(P_Style.l, P_Password.s, P_Level.l)
Shared CryptedPreferences.CryptedPreferences
SetCryptedPreferencesStyle(CryptedPreferences, P_Style)
SetCryptedPreferencesPassword(CryptedPreferences, P_Password)
SetCryptedPreferencesLevel(CryptedPreferences, P_Level)
SetCryptedPreferencesNormalizedKey(CryptedPreferences, PukallCipherNormalizedKey(GetCryptedPreferencesPassword(CryptedPreferences), GetCryptedPreferencesLevel(CryptedPreferences)))
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Ajustement du Style <<<<<
Procedure CryptedPreferencesStyle(P_Style.l)
Shared CryptedPreferences.CryptedPreferences
SetCryptedPreferencesStyle(CryptedPreferences, P_Style)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Ajustement du Password <<<<<
Procedure CryptedPreferencesPassword(P_Password.s)
Shared CryptedPreferences.CryptedPreferences
; Si le niveau de cryptage n'est pas spécifié, on l'ajuste à 128 bits par défaut.
If GetCryptedPreferencesLevel(CryptedPreferences) = 0
SetCryptedPreferencesLevel(CryptedPreferences, #PUKALLCIPHER_LEVEL_GOOD)
EndIf
SetCryptedPreferencesPassword(CryptedPreferences, P_Password)
SetCryptedPreferencesNormalizedKey(CryptedPreferences, PukallCipherNormalizedKey(GetCryptedPreferencesPassword(CryptedPreferences), GetCryptedPreferencesLevel(CryptedPreferences)))
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Ajustement du Level <<<<<
Procedure CryptedPreferencesLevel(P_Level.l)
Shared CryptedPreferences.CryptedPreferences
; Si le niveau de cryptage est différent de celui déja initialisé, on change la valeur
; et si le mot de passe est non null on re-normalise la clé de cryptage.
If P_level <> GetCryptedPreferencesLevel(CryptedPreferences)
SetCryptedPreferencesLevel(CryptedPreferences, P_Level)
If GetCryptedPreferencesPassword(CryptedPreferences) <> ""
SetCryptedPreferencesNormalizedKey(CryptedPreferences, PukallCipherNormalizedKey(GetCryptedPreferencesPassword(CryptedPreferences), GetCryptedPreferencesLevel(CryptedPreferences)))
EndIf
EndIf
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CreateCryptedPreferences <<<<<
Procedure.b CreateCryptedPreferences(FileName.s)
Shared CryptedPreferences.CryptedPreferences
Success.b = #False
If CreatePreferences(FileName)
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
Key.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), "FailSafe", GetCryptedPreferencesLevel(CryptedPreferences))
Value.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), "CRYPTED_PREFERENCES", GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
Key.s = "FailSafe"
Value.s = PukallCipherEncrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), "CRYPTED_PREFERENCES", GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
WritePreferenceString(Key, Value)
Success.b = #True
EndIf
ProcedureReturn Success
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur OpenCryptedPreferences <<<<<
Procedure.b OpenCryptedPreferences(FileName.s)
Shared CryptedPreferences.CryptedPreferences
Success.b = #False
If OpenPreferences(FileName)
If ExaminePreferenceKeys()
NextPreferenceKey()
InKey.s = PreferenceKeyName()
InValue.s = PreferenceKeyValue()
Select GetCryptedPreferencesStyle(CryptedPreferences)
Case #CRYPTED_PREFERENCES_STYLE_EVERYTHING
Key.s = PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), InKey, GetCryptedPreferencesLevel(CryptedPreferences))
Value.s = PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), InValue, GetCryptedPreferencesLevel(CryptedPreferences))
Case #CRYPTED_PREFERENCES_STYLE_VALUE_ONLY
Key.s = "FailSafe"
Value.s = PukallCipherDecrypt(GetCryptedPreferencesNormalizedKey(CryptedPreferences), InValue, GetCryptedPreferencesLevel(CryptedPreferences))
EndSelect
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Si la clé "FailSafe" et sa valeur "CRYPTED_PREFERENCES" sont identiques
; aux valeurs par défaut cela implique que le mot de passe est correct.
; Donc on signale que l'ouverture est un succès pour la suite de la lecture.
; Si non on demande à nouveau le mot de passe et on fait un autre essai.
If Key = "FailSafe" And Value = "CRYPTED_PREFERENCES"
Success.b = #True
EndIf
EndIf
EndIf
ProcedureReturn Success
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur CloseCryptedPreferences <<<<<
Procedure CloseCryptedPreferences()
Shared CryptedPreferences.CryptedPreferences
ResetCryptedPreferences(CryptedPreferences)
ClosePreferences()
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! ATTENTION - CODE D'ESSAI !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
InitializeCryptedPreferences(#CRYPTED_PREFERENCES_STYLE_EVERYTHING, "ns40@eby$xwq#", #PUKALLCIPHER_LEVEL_LUDICROUS)
; CryptedPreferencesStyle(#CRYPTED_PREFERENCES_STYLE_EVERYTHING)
; CryptedPreferencesLevel(#PUKALLCIPHER_LEVEL_LUDICROUS)
; CryptedPreferencesPassword("ns40@eby£xwq#")
If CreateCryptedPreferences("Test.pref")
CryptedPreferenceComment("Un commentaire juste pour voir ce que ça donne !")
CryptedPreferenceGroup("Entier")
WriteCryptedPreferenceLong("Long", 65535)
WriteCryptedPreferenceQuad("Quad", 65535)
CryptedPreferenceGroup("Réel")
WriteCryptedPreferenceFloat("Float", #PI)
WriteCryptedPreferenceDouble("Double", 2 * #PI)
CryptedPreferenceGroup("Texte")
WriteCryptedPreferenceString("String", "Std Preferences Wrapping")
CloseCryptedPreferences()
EndIf
CryptedPreferencesStyle(#CRYPTED_PREFERENCES_STYLE_EVERYTHING)
CryptedPreferencesPassword("@£¢12acwerd%&")
CryptedPreferencesLevel(#PUKALLCIPHER_LEVEL_LUDICROUS)
For Try = 0 To 3
If OpenCryptedPreferences("Test.pref")
CryptedPreferenceGroup("Entier")
Debug ReadCryptedPreferenceLong("Long", 0)
Debug ReadCryptedPreferenceQuad("Quad", 0)
CryptedPreferenceGroup("Réel")
Debug ReadCryptedPreferenceFloat("Float", 0.0)
Debug ReadCryptedPreferenceDouble("Double", 0.0)
CryptedPreferenceGroup("Texte")
Debug ReadCryptedPreferenceString("String", "")
CloseCryptedPreferences()
Break
ElseIf Try = 2
CryptedPreferencesPassword("ns40@eby$xwq#")
Else
Debug "Wrong Password !"
EndIf
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Guimauve