Secure Platform Laboratories, Information Security Project
What's New Introduction Standardization Related Information Product & User Information Technical Information & Open Source Contact & Frequently Asked Question

Camellia A 128 Bit Block Cipher Suitable for Multiple Platforms

Camellia Source Codes

Update Information

May 18,2012
  FreeBSD 9.X ports, Wireshark, Gmime, Tera Term, MIT Kerberos 5, and The Legion of the Bouncy Castle(C#) were added to Open Source Applicable to Camellia.
Camellia for Haskell and oclCrypto were added to Open Source Software (other individuals or organizations).
December 22,2010
  Camellia was adopted into MIT Kerberos 5 Release1.9.
July 9,2010
  Open Hardware IP Core was added to Open Source Applicable to Camellia.
December 25, 2009
  The Camellia additional patch for MIT Kerberos was added to the open source page.
July 24, 2009
  strongSwan was added to Open Source Applicable to Camellia.
May 15, 2009
  Beta of OpenSSL 1.0.0 was released. Camellia becomes enable by default after version 1.0.0 or later.
in the past

Open Source Software (NTT)

With the aim to reduce the burden of userís operation for equipping Camellia into product development and test applications, NTT begins to publish NTTís open source codes of Camellia with free of charge by multiple open source software licenses. In accordance with an agreement between NTT and Mitsubishi Electric Corporation, Camellia essential patents can be used at no charge by any Camellia user without concluding such royalty-free licensing agreement hereafter. For details, please see the Intellectual Property Information page.

<<<Important Notice>>>

  1. In regard to applying the open source software, although these are programmed so that it performs correct encryption and decryption based on the Camelliaís specifications and high-speed processing method for 32-bit CPUs, the modes of operation, a key management mechanism, and counter-measure technology for implementation attacks are not included, and the appropriate care should be taken. In addition, in the event that this open source software should yield any kind of damage, this software should be used with the understanding that NTT does not bear any responsibility whatsoever.
  2. Any product equipped with Camellia encryption algorithm (including the open sources) is a controlled product regulated under the Japanese Foreign Exchange and Foreign Trade Law, though the algorithm is public. When you plan to export or take this product out of Japan, or provide any juridical person having its main office in Japan, concerning property or business of such a juridical person which is located overseas, please obtain a permission, as required by the Law and related regulations, from the Japanese Government.

Guidance handbook
The handbook related to Firefox
How to use Camellia for SSL communication method with Firefox3
[Japanese] CamelliaFirefoxV1.0_080619.pdf (2008-06-19, 291KB)

The handbook related to OpenSSL
How to use Camellia in OpenSSL
[Japanese] CamelliausersguideV1.0_070704.pdf (2007-07-04, 387KB)
  "How to Compile and Install OpenSSL for Camellia on the UNIX(V1.1)" is
  included in "How to use Camellia in OpenSSL(V1.0)".
How to construct SSL server using Camellia for SSL communication
[Japanese] sslserverconstructionguidev2.1_090319.pdf (2009-03-19, 275KB)

The handbook related to Linux kernel and Ipsec-tools
How to compile Ipsec-tools and Linux kernel using Camellia
[English] linux-ref-eng-1.0.pdf (2006-11-08, Version 1.0, 34KB)
[Japanese] linux-ref-jpn-1.0.pdf (2006-11-08, Version 1.0, 107KB)

The handbook related to Camellia engines
The instructional handbook of Camellia open source codes
[Japanese] CamelliaGuidance060718.pdf (2006-07-12, for C-language Version 1.1, 31KB)

Crypto Engines
Crypto Engine for Camellia

Patch files for Camellia extensions
Patch files for Camellia extensions contributing to the communities. Please see the Patch files for Camellia extensions page.
Patch files for Camellia extensions adopted to the communities. Please see the Past Crypto Engine page.

Open Source Applicable to Camellia

Product lineup
(Open Source other than NTT made is also included)
Operating system kernel [updated]
Operating systemVersionAvailable function
arrowLinuxAfter version 2.6.21IPsec
arrowFedora CoreAfter version 7IPsec
arrowFreeBSD 9.x portscrypt library (pefs)
arrowFreeBSD 7.xAfter version 7.0IPsec, partition encryption (geli)
arrowFreeBSD 6.xAfter version 6.4IPsec

Library [updated]
Product nameVersionRemarks
arrowOpenSSLAfter version 0.9.8cOperating system, which bundles OpenSSL that enables Camellia is here. Besides, it is necessary to specify enable-camellia by the compilation option.
arrowNSSAfter version 3.12 
arrowCrypto++After version 5.4 
arrowThe GNU Transport Layer Security LibraryAfter version 2.20 
arrowThe Legion of the Bouncy Castle(Java)After version 1.30BouncyCastle 1.41 adopted Java-compliant Camellia engine (version 1.2.0) which is published on this website was released.
arrowThe Legion of the Bouncy Castle(C#)After version 1.4

Operating system, which bundles OpenSSL that enables Camellia
Product nameVersion
arrowFedora CoreAfter version 9
arrowOpenSUSEAfter version 10.3
arrowGentoo LinuxAfter version 2008.0
arrowFreeBSDAfter version 7.0
arrowFreeBSD portsAfter 2007/6/12

Application [updated]
Product nameVersionDescriptionAvailable function
arrowFirefoxAfter version 3.0Web BrowserSSL
arrowGnuPGAfter version 2EmailOpenPGP
arrowipsec-toolsAfter version 0.7IPSECIPsec, IKE
arrowstrongSwanAfter version 4.2.1IPSEC VPNIKE
arrowSeaMonkeyAfter version 2.0Mozilla all-in-one internet application suite 
arrowWiresharkAfter version 1.6.0network protocol analyzer 
arrowGmimeAfter version 2.6.1library which may be used for the creation and parsing of message using the Multipurpose Internet Mail Extention (MIME) 
arrowTera TermAfter version 2.57Terminal EmulatorSSH2
arrowMIT Kerberos 5After version 1.9KerberosKerberos

Camellia Open Source Software (other individuals or organizations)

* We greatly appreciate it if you would contact here when the open source software of Camellia was made and opened to the public.

Camellia for Open Souce Softwares (2006.5.25 added)
  Patch files for extensions such as OpenSSH, OCaml are published.

Camellia for Python (2006.5.25 added)(in Japanese)

Perl Camellia encryption module(CPAN) (2006.5.25 added)

openCrypto.NET (2008.2.26 added)(in Japanese)

Ruby package (2009.1.29 update)
  Package to use Camellia in Ruby.

  ruby-1.9.1-rc1 is supported in version 1.2.
  It is registered at Ruby Application Archive (RAA),
  RubyForge (Registered at RAA, Registered at RubyForge).

  camellia-rb-1.2.tar.gz (Version 1.2, 36 KB)

  camellia-rb-1.2.gem (Version 1.2, 40 KB)

  To the Past Crypto Engine, click here.

Pascal source by Wolfgang Ehrhardt (2008.9.8 added)

TAHI Project (2008.11.7 added)

Camellia for Haskell (2012.XX.XX added) [new]

oclCrypto (2012.XX.XX added) [new]
  Camellia Implementation using OpenCL.

Reference Code

A Reference Code (C, 3KB)
   This reference code is written for an easy understanding of the Camellia
   encryption algorithm and a tool for validity verification of a source code that you made.
   It is not intended to be used for a specific application.
   No optimized techniques are adopted at all in this code.

Copyright(C) Nippon Telegraph and Telephone Corporation.