debian/0000755000000000000000000000000012162525460007171 5ustar debian/README.Debian0000644000000000000000000000043512162525460011234 0ustar stegsnow for Debian ------------------- The upstream binary's name is "snow". This has been renamed to "stegsnow" to reflect other similar tools, like "steghide". It also helps shell completion with 'steg'. -- Jari Aalto , Fri, 18 Dec 2009 21:07:23 +0200 debian/watch0000644000000000000000000000014712162525460010224 0ustar version=3 opts="filenamemangle=s/snow/stegsnow/" \ http://www.darkside.com.au/snow/ .*snow-(.+).tar.gz debian/rules0000755000000000000000000000055312162525460010254 0ustar #!/usr/bin/make -f PACKAGE = stegsnow export DEB_BUILD_MAINT_OPTIONS = hardening=+all override_dh_auto_install: # Rename due to existing binary "snow" in package r-cran-snow install -D -m 755 snow debian/$(PACKAGE)/usr/bin/$(PACKAGE) override_dh_installman: install -D -m 644 *.1 debian/$(PACKAGE)/usr/share/man/man1/$(PACKAGE).1 %: dh $@ # End of file debian/changelog0000644000000000000000000000023412162525460011042 0ustar stegsnow (20130616-1) unstable; urgency=low * Initial release (Closes: #293244). -- Jari Aalto Wed, 26 Jun 2013 11:36:40 +0300 debian/patches/0000755000000000000000000000000012162525460010620 5ustar debian/patches/10-man.patch0000644000000000000000000000605712162525460012642 0ustar From: Jari Aalto Subject: Update name --- snow.1 | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) --- a/snow.1 +++ b/snow.1 @@ -1,8 +1,8 @@ -.TH SNOW 1 "28 Dec 1996" "Version 1.1" +.TH STEGSNOW 1 "28 Dec 1996" "Version 1.1" .SH NAME -snow \- whitespace steganography program +stegsnow \- whitespace steganography program .SH SYNOPSIS -.B snow +.B stegsnow [ .B -CQS ] [ @@ -31,7 +31,7 @@ .I outfile ]] .SH DESCRIPTION -\fBsnow\fP is a program for concealing messages in text files +\fBstegsnow\fP is a program for concealing messages in text files by appending tabs and spaces on the end of lines, and for extracting messages from files containing hidden messages. Tabs and spaces are invisible to most text viewers, hence the @@ -48,7 +48,7 @@ allows the insertion of mail and news headers without corrupting the data. .PP -\fBsnow\fP provides rudimentary compression, using Huffman tables +\fBstegsnow\fP provides rudimentary compression, using Huffman tables optimised for English text. However, if the data is not text, or if there is a lot of data, the use of the built-in compression is not recommended, since an external compression program such as @@ -61,11 +61,11 @@ are supported). .PP If a message string or message file are specified on the command-line, -\fBsnow\fP will attempt to conceal the message in the file \fIinfile\fP +\fBstegsnow\fP will attempt to conceal the message in the file \fIinfile\fP if specified, or standard input otherwise. The resulting file will be written to \fIoutfile\fP if specified, or standard output if not. .PP -If no message string is provided, \fBsnow\fP attempts to extract a +If no message string is provided, \fBstegsnow\fP attempts to extract a message from the input file. The result is written to the output file or standard output. .SH OPTIONS @@ -77,7 +77,7 @@ The contents of this file will be concealed in the input text file. .TP \fB-l\fP \fIline-len\fP -When appending whitespace, \fBsnow\fP will always produce lines shorter +When appending whitespace, \fBstegsnow\fP will always produce lines shorter than this value. By default it is set to 80. .TP \fB-m\fP \fImessage-string\fP @@ -109,13 +109,13 @@ "hello world". The resulting text will be stored in \fIoutfile\fP. .PP .RS -\fBsnow \-C \-m "I am lying" \-p "hello world" infile outfile\fP +\fBstegsnow \-C \-m "I am lying" \-p "hello world" infile outfile\fP .RE .PP To extract the message, the command would be .PP .RS -\fBsnow \-C \-p "hello world" outfile\fP +\fBstegsnow \-C \-p "hello world" outfile\fP .RE .PP Note that the resulting message will not be terminated by a newline. @@ -125,14 +125,14 @@ be used. .PP .RS -\fBsnow \-C \-l 72 \-m "I am lying" infile outfile\fP +\fBstegsnow \-C \-l 72 \-m "I am lying" infile outfile\fP .RE .PP The approximate storage capacity of a file can be determined with the \fB-S\fP option. .PP .RS -\fBsnow \-S \-l 72 infile\fP +\fBstegsnow \-S \-l 72 infile\fP .RE .SH AUTHOR This application was written by Matthew Kwan, who can be reached at debian/patches/series0000644000000000000000000000001512162525460012031 0ustar 10-man.patch debian/debian-vars.mk0000644000000000000000000000561012162525460011717 0ustar # debian-vars.mk -- Common variables # # Copyright # # Copyright (C) 2005-2009 Jari Aalto # # License # # This program is free software; you can redistribute it and or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details at # . # # Description # # This is GNU makefile part, that defines common variables and # macros to be used from debian/rules. To install, add this: # # PACKAGE = foo # include debian/debian-vars.mk ifneq (,) This makefile requires GNU Make. endif PACKAGE ?= foo PIXPACKAGE ?= $(PACKAGE) TOPDIR := $(shell pwd) PKGDIR = $(CURDIR)/debian/$(PACKAGE) SHAREROOTDIR = $(PKGDIR)/usr/share SHAREDIR = $(SHAREROOTDIR)/$(PACKAGE) DOCROOTDIR = $(SHAREROOTDIR)/doc PKGDOCDIR = $(SHAREROOTDIR)/doc/$(PACKAGE) SITELISPDIR = $(SHAREROOTDIR)/emacs/site-lisp PKGLISPDIR = $(SITELISPDIR)/$(PACKAGE) DESKTOPDIR = $(SHAREROOTDIR)/applications LOCALEDIR = $(SHAREROOTDIR)/locale INFODIR = $(SHAREROOTDIR)/info PIXDIR = $(SHAREROOTDIR)/pixmaps PKGPIXDIR = $(SHAREROOTDIR)/pixmaps/$(PIXPACKAGE) MANROOTDIR = $(SHAREROOTDIR)/man MAN1DIR = $(MANROOTDIR)/man1 MAN5DIR = $(MANROOTDIR)/man5 MAN8DIR = $(MANROOTDIR)/man8 LIBROOTDIR = $(PKGDIR)/usr/lib LIBDIR = $(LIBROOTDIR)/$(PACKAGE) LIBPERLDIR = $(LIBROOTDIR)/perl BINDIR = $(PKGDIR)/usr/bin SBINDIR = $(PKGDIR)/usr/sbin INSTALL ?= /usr/bin/install INSTALL_DATA = $(INSTALL) -p -m 644 INSTALL_SCRIPT = $(INSTALL) -p -m 755 INSTALL_BIN = $(INSTALL) -p -m 755 INSTALL_DIR = $(INSTALL) -m 755 -d ####################################################################### # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) # # [Add this] # config.status: configure # ... # ./configure --host=$(DEB_HOST_GNU_TYPE) \ # --build=$(DEB_BUILD_GNU_TYPE) \ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ####################################################################### # [Add this to use multiple CPU cores] # build-stamp: # $(MAKE) $(MAKE_FLAGS) ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_BIN += -s endif CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif MAKE_FLAGS = CPU_COUNT := $(shell fgrep -c processor /proc/cpuinfo 2> /dev/null | \ egrep "^[2-9]$$|^[0-9][0-9]$$") ifneq ($(CPU_COUNT),) MAKE_FLAGS += -j$(CPU_COUNT) endif # End of Makefile part debian/source/0000755000000000000000000000000012162525460010471 5ustar debian/source/format0000644000000000000000000000001412162525460011677 0ustar 3.0 (quilt) debian/compat0000644000000000000000000000000212162525460010367 0ustar 9 debian/copyright0000644000000000000000000000320312162525460011122 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0 Upstream-Name: snow Upstream-Contact: Matthew Kwan Source: http://www.darkside.com.au/snow Comment: Files: * Copyright: 2010 Matthew Kwan License: Apache-2.0 Files: debian/* Copyright: 2013 Jari Aalto License: GPL-2+ License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License can be found in "/usr/share/common-licenses/GPL-2". License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. . For license text, see https://spdx.org/licenses/Apache-2.0>. debian/control0000644000000000000000000000167312162525460010603 0ustar Source: stegsnow Section: misc Priority: optional Maintainer: Jari Aalto Build-Depends: debhelper (>= 9) Standards-Version: 3.9.4 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/stegsnow.git Vcs-Git: git://anonscm.debian.org/collab-maint/stegsnow.git Homepage: http://www.darkside.com.au/snow Package: stegsnow Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: steganography using ASCII files This utility can conceal messages in ASCII text by appending whitespace to the end of lines. Because spaces and tabs are generally not visible in text viewers, the message is effectively hidden from casual observers. And if the built-in encryption is used, the message cannot be read even if it is detected. . About the name: locating trailing whitespace in text is like finding a polar bear in a snowstorm. And it uses the ICE encryption algorithm, so the name is thematically consistent. debian/repack.sh0000644000000000000000000001110012162525460010763 0ustar #!/bin/sh # # Copyright # # Copyright (C) 2008-2009 Jari Aalto # # License # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . set -e set -u Init () { # Check depends [ -x /bin/mktemp ] || Die "[ERROR]: mktemp (coreutils) not installed." [ -x /bin/bzip2 ] || Die "[ERROR]: bzip2 (bzip2) not installed." [ -x /bin/gzip ] || Die "[ERROR]: gzip (gzip) not installed." [ -x /bin/tar ] || Die "[ERROR]: tar (tar) not installed." } Help () { echo " SYNOPSIS repack.sh --upstream-source [package] DESCRIPTION Repackage upstream source. The command line arguments are due to uscan(1) order. The PACKAGE argument is optional. EXAMPLES Repack foo-1.1.tar.gz as bar-1.10.tar.gz repack.sh 1.10 foo-1.1.tar.gz bar AUTHOR Jari Aalto . Licenced under GPL v2 or, at your option, any later version. " exit 0 } Run () { if [ "${test+test_mode}" = "test_mode" ]; then echo "$@" else [ "${verbose+verbose_mode}" = "verbose_mode" ] && echo "$@" >&2 "$@" fi } Warn () { echo "$*" >&2 } Die () { Warn "$*" exit 1 } AtExit () { if [ "$DIR" ]; then [ -d "$DIR" ] && Run rm -rf "$DIR" fi } DebianVersion () { # YYYYMMDD => YYYY.MMDD echo $1 | sed 's/^\([0-9][0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/\1.\2\3/' } DebianTar () { local ver=$1 local dver=$2 local file=$3 local pkg=$4 # If version is same, use original file if [ "$ver" = "$dver" ]; then if [ "$pkg" ]; then echo $file | sed "s,.*$ver,$pkg-$ver," else echo $file fi return 0 fi if [ "$pkg" ]; then echo $file | sed -e "s,.*$ver,$pkg-$dver," else # replace with new version echo $file | sed -e "s,$ver,$dver," fi } Pkg () { local file=$1 if [ -f debian/changelog ]; then dpkg-parsechangelog | awk '/^Source:/ {print $2}' else # package-1.1.tar.gz => package echo $file | sed "s,-[0-9].*,," fi } Version () { local file=$1 local pkg=$(Pkg $file) if [ ! "$pkg" ]; then Die "[ERROR] Internal error. 'pkg' variable not set. Run with debug (-x)" fi echo $file | sed -e "s,\.tar.*,," \ -e "s,$pkg[-_],," } Main () { Init DIR= # Ignore uscan(1) argument --upstream-version in $1 case "$1" in --help|-h) Help ;; --*) shift ;; esac VER="$1" FILE="$2" if [ ! -f "$FILE" ]; then Die "[ERROR] Arg 2. File does not exist: $FILE" fi PKG=${3:-$(Pkg $FILE)} if [ ! "$PKG" ]; then Die "[ERROR] Internal error. PKG not set. Run with debug (-x)" fi CURVER=$(Version $FILE) if [ ! "$CURVER" ]; then Die "[ERROR] Internal error. CURVER not set. Run with debug (-x)" fi DVER=$(DebianVersion "$VER") DFILE=$(DebianTar "$CURVER" "$DVER" "$FILE" $PKG) # Debian Developer's Reference 6.7.8.2 Repackaged upstream source REPACK_DIR="$PKG-$DVER.orig" DIR=$(Run mktemp -d ./tmp.repack.XXXXXX) echo "Repacking $FILE as $PKG-$DVER" # Create an extra directory to cope with tarballs that # do not have root/ directory UP_BASE="$DIR/unpack" Run mkdir "$UP_BASE" Run tar -C "$UP_BASE" -xf "$FILE" if [ $(ls -1 "$UP_BASE" | wc -l) -eq 1 ]; then # Tarball does contain a root directory UP_BASE="$UP_BASE/$(ls -1 "$UP_BASE")" fi # Remove files if needed # Repack Run mv "$UP_BASE" "$DIR/$REPACK_DIR" # Don't use pipes. Errors are not handled correctly if pipes aree used. Run tar -C "$DIR" -cf "$DIR/repacked.tar" "$REPACK_DIR" # The .orig file must uxe gzip compression tar="$DIR/repacked.tar" case "$DFILE" in *.bz2) DFILE=$(echo $DFILE | sed "s/.bz2/.gz/") ;; *.gz) ;; *) Die "Unknown *.suffix in $DFILE" ;; esac suffix=".gz" Run gzip --best "$tar" Run mv "$tar$suffix" "$DFILE" echo "Done $DFILE" } trap AtExit QUIT INT EXIT Main "$@" # End of file