| 1124 | } |
| 1125 | |
| 1126 | private static boolean parseHeader(Buffer buffer, java.util.Hashtable v){ |
| 1127 | byte[] buf = buffer.buffer; |
| 1128 | int index = buffer.index; |
| 1129 | String key = null; |
| 1130 | String value = null; |
| 1131 | for(int i = index; i < buf.length; i++){ |
| 1132 | if(buf[i] == 0x0d){ |
| 1133 | break; |
| 1134 | } |
| 1135 | if(buf[i] == ':'){ |
| 1136 | key = new String(buf, index, i - index); |
| 1137 | i++; |
| 1138 | if(i < buf.length && buf[i] == ' '){ |
| 1139 | i++; |
| 1140 | } |
| 1141 | index = i; |
| 1142 | break; |
| 1143 | } |
| 1144 | } |
| 1145 | |
| 1146 | if(key == null) |
| 1147 | return false; |
| 1148 | |
| 1149 | for(int i = index; i < buf.length; i++){ |
| 1150 | if(buf[i] == 0x0d){ |
| 1151 | value = new String(buf, index, i - index); |
| 1152 | i++; |
| 1153 | if(i < buf.length && buf[i] == 0x0a){ |
| 1154 | i++; |
| 1155 | } |
| 1156 | index = i; |
| 1157 | break; |
| 1158 | } |
| 1159 | } |
| 1160 | |
| 1161 | if(value != null){ |
| 1162 | v.put(key, value); |
| 1163 | buffer.index = index; |
| 1164 | } |
| 1165 | |
| 1166 | return (key != null && value != null); |
| 1167 | } |
| 1168 | |
| 1169 | void copy(KeyPair kpair){ |
| 1170 | this.publickeyblob=kpair.publickeyblob; |