1 2package org.bouncycastle.i18n.filter; 3 4/** 5 * Filter for strings to store in a SQL table. 6 * 7 * escapes ' " = - / \ ; \r \n 8 */ 9public class SQLFilter implements Filter 10{ 11 12 public String doFilter(String input) 13 { 14 StringBuffer buf = new StringBuffer(input); 15 int i = 0; 16 while (i < buf.length()) 17 { 18 char ch = buf.charAt(i); 19 switch (ch) 20 { 21 case '\'': 22 buf.replace(i,i+1,"\\\'"); 23 i += 1; 24 break; 25 case '\"': 26 buf.replace(i,i+1,"\\\""); 27 i += 1; 28 break; 29 case '=': 30 buf.replace(i,i+1,"\\="); 31 i += 1; 32 break; 33 case '-': 34 buf.replace(i,i+1,"\\-"); 35 i += 1; 36 break; 37 case '/': 38 buf.replace(i,i+1,"\\/"); 39 i += 1; 40 break; 41 case '\\': 42 buf.replace(i,i+1,"\\\\"); 43 i += 1; 44 break; 45 case ';': 46 buf.replace(i,i+1,"\\;"); 47 i += 1; 48 break; 49 case '\r': 50 buf.replace(i,i+1,"\\r"); 51 i += 1; 52 break; 53 case '\n': 54 buf.replace(i,i+1,"\\n"); 55 i += 1; 56 break; 57 default: 58 } 59 i++; 60 } 61 return buf.toString(); 62 } 63 64} 65