private void expand1(byte[] src, byte[] dst) {
                for(int i = 1, n = dst.length; i < n; i += 8) {
                        int val = src[1 + (i >> 3)] & 255;
                        switch(n - i) {
                                default:
                                        dst[i + 7] = (byte)((val) & 1);
                                case 7:
                                        dst[i + 6] = (byte)((val >> 1) & 1);
                                case 6:
                                        dst[i + 5] = (byte)((val >> 2) & 1);
                                case 5:
                                        dst[i + 4] = (byte)((val >> 3) & 1);
                                case 4:
                                        dst[i + 3] = (byte)((val >> 4) & 1);
                                case 3:
                                        dst[i + 2] = (byte)((val >> 5) & 1);
                                case 2:
                                        dst[i + 1] = (byte)((val >> 6) & 1);
                                case 1:
                                        dst[i] = (byte)((val >> 7));
                        }
                }
        }