litesoft
@ HEAD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.encryption.symmetric; public interface SymmetricEncryptorManager { /** * Adds a decryptor to the supported list */ public abstract void addDecryptor( SymmetricEncryptor pSymmetricEncryptor ); /** * Set the "current" Encryptor */ public abstract void setSymmetricEncryptor( SymmetricEncryptor pSymmetricEncryptor ); /** * @return The "current" Encryptor (the initial SE is BrainDeadSymmetricEncryptor) */ public abstract SymmetricEncryptor getSymmetricEncryptor(); /** * @return null if not found! */ public abstract SymmetricEncryptor getSymmetricEncryptor( String pIdentifierAndVersion ); public static class Helper { public static String fromEncrypted( SymmetricEncryptorManager pSymmetricEncryptorManager, String pEncryptedText ) { if ( pEncryptedText == null ) { return null; } SymmetricEncryptor zSE = pSymmetricEncryptorManager.getSymmetricEncryptor(); String zIDnVerPrefix = zSE.getIdentifierAndVersion() + ":"; if ( !pEncryptedText.startsWith( zIDnVerPrefix ) ) { int zVerSepAt = pEncryptedText.indexOf( ':' ); if ( zVerSepAt == -1 ) { throw new IllegalStateException( "Encrypted Field w/o Identifier And Version" ); } String zIdAndVer = pEncryptedText.substring( 0, zVerSepAt ); zSE = pSymmetricEncryptorManager.getSymmetricEncryptor( zIdAndVer ); if ( zSE == null ) { throw new IllegalStateException( "Encrypted Field with an unsupported Identifier And Version (" + zIdAndVer + ")" ); } } return zSE.decrypt( pEncryptedText.substring( zIDnVerPrefix.length() ) ); } public static String toEncrypted( SymmetricEncryptorManager pSymmetricEncryptorManager, String pPlainText ) { if ( pPlainText == null ) { return null; } SymmetricEncryptor zSE = pSymmetricEncryptorManager.getSymmetricEncryptor(); return zSE.getIdentifierAndVersion() + ":" + zSE.encrypt( pPlainText ); } } } |
Commits for litesoft/trunk/Java/core/Anywhere/src/org/litesoft/encryption/symmetric/SymmetricEncryptorManager.java
Revision | Author | Commited | Message |
---|---|---|---|
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |