#* camellia-example.rb #* #* Copyright (c) 2008 #* NTT (Nippon Telegraph and Telephone Corporation) . All rights reserved. #* #* Redistribution and use in source and binary forms, with or without #* modification, are permitted provided that the following conditions #* are met: #* 1. Redistributions of source code must retain the above copyright #* notice, this list of conditions and the following disclaimer as #* the first lines of this file unmodified. #* 2. Redistributions in binary form must reproduce the above copyright #* notice, this list of conditions and the following disclaimer in the #* documentation and/or other materials provided with the distribution. #* #* THIS SOFTWARE IS PROVIDED BY NTT ``AS IS'' AND ANY EXPRESS OR #* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES #* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. #* IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, INDIRECT, #* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT #* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, #* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY #* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT #* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF #* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #* require "camellia" #ECB a=Camellia.new('deadbeefdeadbeefdeadbeefdeadbeef') b=a.encrypt("deadbeefdeadbeef") print a.decrypt(b),"\n" # should print deadbeefdeadbeef #CFB a.cfb_salt('128bitbinaryvalu') # must be a 128-bit BINARY value b=a.cfb_encrypt("now is the time for all good men to come to the aid of thei.chr country.\n") a.cfb_salt('128bitbinaryvalu') # must be a 128-bit BINARY value print a.cfb_decrypt(b) #CBC a.cbc_salt('128bitbinaryvalu') # must be a 128-bit BINARY value b=a.cbc_encrypt("now is the time for all good men to come to the aid of thei.chr country.\n") a.cbc_salt('128bitbinaryvalu') # must be a 128-bit BINARY value print a.cbc_decrypt(b)