Copied: poi/site/publish/devel/who.html (from r1836243, poi/site/publish/who.html) URL: http://svn.apache.org/viewvc/poi/site/publish/devel/who.html?p2=poi/site/publish/devel/who.html&p1=poi/site/publish/who.html&r1=1836243&r2=1836244&rev=1836244&view=diff ============================================================================== --- poi/site/publish/who.html (original) +++ poi/site/publish/devel/who.html Wed Jul 18 23:27:21 2018 @@ -1,327 +1,218 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<!--*** This is a generated file. Do not edit. ***--> -<link rel="stylesheet" href="skin/tigris.css" type="text/css"> -<link rel="stylesheet" href="skin/mysite.css" type="text/css"> -<link rel="stylesheet" href="skin/site.css" type="text/css"> -<link media="print" rel="stylesheet" href="skin/print.css" type="text/css"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.9"> +<meta name="Forrest-skin-name" content="pelt"> <title>Apache POI - Who We Are</title> +<link type="text/css" href="../skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet"> +<link type="text/css" href="../skin/profile.css" rel="stylesheet"> +<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="../images/favicon.ico"> </head> -<body bgcolor="white" class="composite"> -<!--================= start Banner ==================--> -<div id="banner"> -<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> -<tbody> -<tr> -<!--================= start Group Logo ==================--> -<td width="50%" align="left"> -<div class="groupLogo"> -<a href="https://www.apache.org"><img border="0" class="logoImage" alt="The Apache Software Foundation" src="resources/images/asf_logo.png"></a> -</div> -</td> -<!--================= end Group Logo ==================--> -<!--================= start Project Logo ==================--><td width="50%" align="right"> -<div align="right" class="projectLogo"> -<a href="https://donate.apache.org/"><img border="0" class="logoImage" alt="Support Apache" src="resources/images/support-asf.png" width="120" height="120" title="Your donation helps The Apache Software Foundation ensure its community-driven software remains available to billions of users at absolutely no cost."></a><a href="https://poi.apache.org/"><img border="0" class="logoImage" alt="Apache POI" src="resources/images/pb-poi.png" width="120" height="120" title="Apache POI - the Java API for Microsoft Documents"></a> -</div> -</td> -<!--================= end Project Logo ==================--> -</tr> -</tbody> -</table> -</div> -<!--================= end Banner ==================--> -<!--================= start Main ==================--> -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> -<tbody> -<!--================= start Status ==================--> -<tr class="status"> -<td> -<!--================= start BreadCrumb ==================--><a href="https://www.apache.org/">Apache</a> | <a href="https://poi.apache.org/">POI</a><a href=""></a> -<!--================= end BreadCrumb ==================--></td><td id="tabs"> -<!--================= start Tabs ==================--> -<div class="tab"> -<span class="selectedTab"><a class="base-selected" href="index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> -function printit() { -if (window.print) { - window.print() ; -} else { - var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; -document.body.insertAdjacentHTML('beforeEnd', WebBrowser); - WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; -} -} -</script><script language="Javascript" type="text/javascript"> -var NS = (navigator.appName == "Netscape"); -var VERSION = parseInt(navigator.appVersion); -if (VERSION > 3) { - document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); -} -</script> -</div> -<!--================= end Tabs ==================--> -</td> -</tr> -</tbody> -</table> -<!--================= end Status ==================--> -<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> -<tbody> -<tr valign="top"> -<!--================= start Menu ==================--> -<td id="leftcol"> -<div id="navcolumn"> -<div class="menuBar"> -<div class="menu"> -<span class="menuLabel">Overview</span> - -<div class="menuItem"> -<a href="index.html">Home</a> -</div> - -<div class="menuItem"> -<a href="download.html">Download</a> -</div> - -<div class="menuItem"> -<a href="overview.html">Components</a> -</div> - -<div class="menuItem"> -<a href="text-extraction.html">Text Extraction</a> -</div> - -<div class="menuItem"> -<a href="encryption.html">Encryption support</a> -</div> - -<div class="menuItem"> -<a href="casestudies.html">Case Studies</a> -</div> - -<div class="menuItem"> -<a href="related-projects.html">Related projects</a> -</div> - -<div class="menuItem"> -<a href="legal.html">Legal</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Help</span> - -<div class="menuItem"> -<a href="apidocs/index.html">Javadocs</a> -</div> - -<div class="menuItem"> -<a href="faq.html">FAQ</a> -</div> - -<div class="menuItem"> -<a href="mailinglists.html">Mailing Lists</a> -</div> - -<div class="menuItem"> -<a href="https://bz.apache.org/bugzilla/buglist.cgi?product=POI">Bug Database</a> -</div> - -<div class="menuItem"> -<a href="changes.html">Changelog</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Getting Involved</span> - -<div class="menuItem"> -<a href="subversion.html">Subversion Repository</a> -</div> - -<div class="menuItem"> -<a href="howtobuild.html">How To Build</a> -</div> - -<div class="menuItem"> -<a href="guidelines.html">Contribution Guidelines</a> -</div> - -<div class="menuItem"> -<span class="menuSelected">Who We Are</span> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Component APIs</span> - -<div class="menuItem"> -<a href="spreadsheet/index.html">Excel (SS=HSSF+XSSF+SXSSF)</a> -</div> - -<div class="menuItem"> -<a href="slideshow/index.html">PowerPoint (SL=HSLF+XSLF)</a> -</div> - -<div class="menuItem"> -<a href="document/index.html">Word (WP=HWPF+XWPF)</a> -</div> - -<div class="menuItem"> -<a href="hsmf/index.html">Outlook (HSMF)</a> -</div> - -<div class="menuItem"> -<a href="diagram/index.html">Visio (HDGF+XDGF)</a> -</div> - -<div class="menuItem"> -<a href="hpbf/index.html">Publisher (HPBF)</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Low-level Component APIs</span> - -<div class="menuItem"> -<a href="poifs/index.html">OLE2 Filesystem (POIFS)</a> -</div> - -<div class="menuItem"> -<a href="hpsf/index.html">OLE2 Document Props (HPSF)</a> -</div> - -<div class="menuItem"> -<a href="hmef/index.html">TNEF (HMEF) for winmail.dat</a> -</div> - -<div class="menuItem"> -<a href="oxml4j/index.html">OpenXML4J (OOXML)</a> -</div> - -<div class="menuItem"> -<a href="logging.html">Logging framework</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Apache Wide</span> - -<div class="menuItem"> -<a href="https://www.apache.org/">Apache Software Foundation</a> -</div> - -<div class="menuItem"> -<a href="https://www.apache.org/licenses/">License</a> -</div> - -<div class="menuItem"> -<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> -</div> - -<div class="menuItem"> -<a href="https://www.apache.org/foundation/thanks.html">Thanks</a> -</div> - -<div class="menuItem"> -<a href="https://www.apache.org/security/">Security</a> -</div> - -</div> -<center> -<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png"></a> -</center> -</div> -</div> -<form target="_blank" action="https://www.google.com/search" method="get"> -<table summary="search" border="0" cellspacing="0" cellpadding="0"> -<tr> -<td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"> - Search Apache POI<br> -<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td colspan="3"><img height="7" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> -</tr> -</table> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="https://www.apache.org">Apache Software Foundation</a> > <a href="https://poi.apache.org">Apache POI</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="https://www.apache.org"><img class="logoImage" alt="Apache Software Foundation" src="../images/group-logo.png" title="The Apache Software Foundation is a cornerstone of the modern Open Source software ecosystem – supporting some of the most widely used and important software solutions powering today's Internet economy."></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="https://poi.apache.org"><img class="logoImage" alt="Apache POI" src="../images/project-logo.png" title="Apache POI is well-known in the Java field as a library for reading and writing Microsoft Office file formats, such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both the older (OLE2) and new (OOXML - Office Open XML) formats."></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="poi.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> </form> -</td> -<!--================= end Menu ==================--> -<!--================= start Content ==================--><td> -<div id="bodycol"> -<div class="app"> -<div align="center"> -<h1>Apache POI - Who We Are</h1> </div> -<div class="h3"> - - - +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="../index.html">Home</a> +</li> +<li> +<a class="unselected" href="../help/index.html">Help</a> +</li> +<li> +<a class="unselected" href="../components/index.html">Component APIs</a> +</li> +<li class="current"> +<a class="selected" href="../devel/index.html">Getting Involved</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Getting Involved</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="../devel/index.html">How To Build</a> +</div> +<div class="menuitem"> +<a href="../devel/subversion.html">Subversion Repository</a> +</div> +<div class="menuitem"> +<a href="../devel/guidelines.html">Contribution Guidelines</a> +</div> +<div class="menupage"> +<div class="menupagetitle">Who We Are</div> +</div> +<div onclick="SwitchMenu('menu_1.1.5', '../skin/')" id="menu_1.1.5Title" class="menutitle">Planning Documents</div> +<div id="menu_1.1.5" class="menuitemgroup"> +<div class="menuitem"> +<a href="../devel/plan/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../devel/plan/vision10.html">1.0 Vision</a> +</div> +<div class="menuitem"> +<a href="../devel/plan/vision20.html">2.0 Vision</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.6', '../skin/')" id="menu_1.1.6Title" class="menutitle">References</div> +<div id="menu_1.1.6" class="menuitemgroup"> +<div class="menuitem"> +<a href="../devel/references/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../devel/references/logocontest.html">Logo Submissions</a> +</div> +<div class="menuitem"> +<a href="http://sc.openoffice.org/excelfileformat.pdf">XLS spec [PDF]</a> +</div> +<div class="menuitem"> +<a href="http://xml.apache.org/cocoon/">Apache Cocoon</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.7', '../skin/')" id="menu_1.1.7Title" class="menutitle">Resolutions</div> +<div id="menu_1.1.7" class="menuitemgroup"> +<div class="menuitem"> +<a href="../devel/resolutions/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../devel/resolutions/res001.html">Minimal Coding Standards</a> +</div> +</div> +<div class="menuitem"> +<a href="../devel/historyandfuture.html">History</a> +</div> +</div> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"> +<a href="https://donate.apache.org/"><img border="0" title="Support Apache" alt="Support Apache - logo" src="../images/support-asf.png" style="width: 125px;height: 125px;"></a> +</div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> +<h1>Apache POI - Who We Are</h1> +<div id="front-matter"></div> <a name="Apache+POI+-+Who+we+are"></a> -<div class="h3"> -<h3>Apache POI - Who we are<a title="Permanent link" class="headerlink" href="#Apache+POI+-+Who+we+are">#</a> -</h3> -</div> - +<h2 class="boxed">Apache POI - Who we are</h2> +<div class="section"> <p> The Apache POI Project operates on a meritocracy: the more you do, the more responsibility you will obtain. This page lists all of the people who have gone the extra mile and are Committers. If you would like to get involved, - the first step is to join the <a href="mailinglists.html">mailing lists</a>. + the first step is to join the <a href="../help/index.html">mailing lists</a>. </p> - - <p> We ask that you please do not send us emails privately asking for support. We are non-paid volunteers who help out with the project and we do not necessarily have the time or energy to help people on an individual basis. - The <a href="mailinglists.html">mailing lists</a> have many individuals + The <a href="../help/index.html">mailing lists</a> have many individuals who will help answer detailed requests for help. The benefit of using mailing lists over private communication is that they are a shared resource where others can also learn from common questions. </p> - <p> POI Developers count on feedback from the mailing lists. Many developers do take an active role on the lists. </p> - - - - - - - - - <a name="Project+Chair"></a> -<div class="h4"> -<h4>Project Chair<a title="Permanent link" class="headerlink" href="#Project+Chair">#</a> -</h4> -</div> - +<h3 class="boxed">Project Chair</h3> <ul> <li>Dominik Stadler (centic at apache dot org)</li> </ul> - - <a name="Committers"></a> -<div class="h4"> -<h4>Committers<a title="Permanent link" class="headerlink" href="#Committers">#</a> -</h4> -</div> - +<h3 class="boxed">Committers</h3> <ul> - + <!-- Alphabetical by surname --> <li>Tim Allison (tallison at apache dot org)</li> @@ -374,27 +265,8 @@ if (VERSION > 3) { <li>Greg Woolsey (gwoolsey at apache dot org)</li> </ul> - - -<a name="Translators"></a> -<div class="h4"> -<h4>Translators<a title="Permanent link" class="headerlink" href="#Translators">#</a> -</h4> -</div> - -<ul> - -<li>(Please add your name here!!)</li> - -</ul> - - <a name="Emeritus+Committers"></a> -<div class="h4"> -<h4>Emeritus Committers<a title="Permanent link" class="headerlink" href="#Emeritus+Committers">#</a> -</h4> -</div> - +<h3 class="boxed">Emeritus Committers</h3> <ul> <li>Andrew C. Oliver (acoliver at gmail dot com)</li> @@ -406,16 +278,12 @@ if (VERSION > 3) { <li>Tetsuya Kitahata (ai at spa dot nifty dot com)</li> </ul> - - +</div> <a name="I+want+some+progress+on+a+bug+report%21"></a> -<div class="h3"> -<h3>I want some progress on a bug report!<a title="Permanent link" class="headerlink" href="#I+want+some+progress+on+a+bug+report%21">#</a> -</h3> -</div> - +<h2 class="boxed">I want some progress on a bug report!</h2> +<div class="section"> <p> So you took the time to report a bug, provided information that should make it possible to reproduce the problem and fix it. Surely the fix is easy and @@ -438,54 +306,41 @@ if (VERSION > 3) { So the best way to help a bug report see progress is to provide more information if available or supply patches together with unit-tests. - If you can, look at <a href="guidelines.html">Contribution Guidelines</a> + If you can, look at <a href="../devel/guidelines.html">Contribution Guidelines</a> for more information about providing patches. </p> +</div> - - -<div id="authors" align="right">by Apache POI Developers</div> -</div> +<p align="right"> +<font size="-2">by Apache POI Developers</font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> </div> -</div> -</td> -<!--================= end Content ==================--> -</tr> -</tbody> -</table> -<!--================= end Main ==================--> -<!--================= start Footer ==================--> <div id="footer"> -<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> -<tbody> -<tr> -<!--================= start Copyright ==================--> -<td colspan="2"> -<div align="center"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> <div class="copyright"> - Copyright © 2002-2018 The Apache Software Foundation. All rights reserved.<br> - Apache, Apache POI, and the Apache POI logo are registered trademarks or - trademarks of The Apache Software Foundation in the U.S. and/or other countries. - </div> -</div> -</td> -<!--================= end Copyright ==================--> -</tr> -<tr> -<td align="left"> -<!--================= start Host ==================--> -<!--================= end Host ==================--></td><td align="right"> -<!--================= start Credits ==================--> -<div align="right"> -<div class="credit"></div> -</div> -<!--================= end Credits ==================--> -</td> -</tr> -</tbody> -</table> + Copyright © + 2001-2018 <a href="https://www.apache.org/">The Apache Software Foundation</a> +</div> +<div id="feedback"> + Send feedback about the website to: + <a id="feedbackto" href="mailto:[email protected]?subject=Feedback%C2%A0devel/who.html">[email protected]</a> +</div> +<!--+ + |end bottomstrip + +--> </div> -<!--================= end Footer ==================--> </body> </html>
Modified: poi/site/publish/download.html URL: http://svn.apache.org/viewvc/poi/site/publish/download.html?rev=1836244&r1=1836243&r2=1836244&view=diff ============================================================================== --- poi/site/publish/download.html (original) +++ poi/site/publish/download.html Wed Jul 18 23:27:21 2018 @@ -1,345 +1,298 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<!--*** This is a generated file. Do not edit. ***--> -<link rel="stylesheet" href="skin/tigris.css" type="text/css"> -<link rel="stylesheet" href="skin/mysite.css" type="text/css"> -<link rel="stylesheet" href="skin/site.css" type="text/css"> -<link media="print" rel="stylesheet" href="skin/print.css" type="text/css"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.9"> +<meta name="Forrest-skin-name" content="pelt"> <title>Apache POI - Download Release Artifacts</title> +<link type="text/css" href="skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="skin/print.css" rel="stylesheet"> +<link type="text/css" href="skin/profile.css" rel="stylesheet"> +<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="images/favicon.ico"> </head> -<body bgcolor="white" class="composite"> -<!--================= start Banner ==================--> -<div id="banner"> -<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> -<tbody> -<tr> -<!--================= start Group Logo ==================--> -<td width="50%" align="left"> -<div class="groupLogo"> -<a href="https://www.apache.org"><img border="0" class="logoImage" alt="The Apache Software Foundation" src="resources/images/asf_logo.png"></a> -</div> -</td> -<!--================= end Group Logo ==================--> -<!--================= start Project Logo ==================--><td width="50%" align="right"> -<div align="right" class="projectLogo"> -<a href="https://donate.apache.org/"><img border="0" class="logoImage" alt="Support Apache" src="resources/images/support-asf.png" width="120" height="120" title="Your donation helps The Apache Software Foundation ensure its community-driven software remains available to billions of users at absolutely no cost."></a><a href="https://poi.apache.org/"><img border="0" class="logoImage" alt="Apache POI" src="resources/images/pb-poi.png" width="120" height="120" title="Apache POI - the Java API for Microsoft Documents"></a> -</div> -</td> -<!--================= end Project Logo ==================--> -</tr> -</tbody> -</table> -</div> -<!--================= end Banner ==================--> -<!--================= start Main ==================--> -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> -<tbody> -<!--================= start Status ==================--> -<tr class="status"> -<td> -<!--================= start BreadCrumb ==================--><a href="https://www.apache.org/">Apache</a> | <a href="https://poi.apache.org/">POI</a><a href=""></a> -<!--================= end BreadCrumb ==================--></td><td id="tabs"> -<!--================= start Tabs ==================--> -<div class="tab"> -<span class="selectedTab"><a class="base-selected" href="index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> -function printit() { -if (window.print) { - window.print() ; -} else { - var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; -document.body.insertAdjacentHTML('beforeEnd', WebBrowser); - WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; -} -} -</script><script language="Javascript" type="text/javascript"> -var NS = (navigator.appName == "Netscape"); -var VERSION = parseInt(navigator.appVersion); -if (VERSION > 3) { - document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); -} -</script> -</div> -<!--================= end Tabs ==================--> -</td> -</tr> -</tbody> -</table> -<!--================= end Status ==================--> -<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> -<tbody> -<tr valign="top"> -<!--================= start Menu ==================--> -<td id="leftcol"> -<div id="navcolumn"> -<div class="menuBar"> -<div class="menu"> -<span class="menuLabel">Overview</span> - -<div class="menuItem"> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="https://www.apache.org">Apache Software Foundation</a> > <a href="https://poi.apache.org">Apache POI</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="https://www.apache.org"><img class="logoImage" alt="Apache Software Foundation" src="images/group-logo.png" title="The Apache Software Foundation is a cornerstone of the modern Open Source software ecosystem – supporting some of the most widely used and important software solutions powering today's Internet economy."></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="https://poi.apache.org"><img class="logoImage" alt="Apache POI" src="images/project-logo.png" title="Apache POI is well-known in the Java field as a library for reading and writing Microsoft Office file formats, such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both the older (OLE2) and new (OOXML - Office Open XML) formats."></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="poi.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> +</div> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li class="current"> +<a class="selected" href="index.html">Home</a> +</li> +<li> +<a class="unselected" href="help/index.html">Help</a> +</li> +<li> +<a class="unselected" href="components/index.html">Component APIs</a> +</li> +<li> +<a class="unselected" href="devel/index.html">Getting Involved</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Overview</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> <a href="index.html">Home</a> </div> - -<div class="menuItem"> -<span class="menuSelected">Download</span> +<div class="menupage"> +<div class="menupagetitle">Download</div> </div> - -<div class="menuItem"> -<a href="overview.html">Components</a> +<div class="menuitem"> +<a href="changes.html">Changelog</a> </div> - -<div class="menuItem"> +<div class="menuitem"> +<a href="apidocs/index.html">Javadocs</a> +</div> +<div class="menuitem"> <a href="text-extraction.html">Text Extraction</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="encryption.html">Encryption support</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="casestudies.html">Case Studies</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="related-projects.html">Related projects</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="legal.html">Legal</a> </div> - -</div> -<div class="menu"> -<span class="menuLabel">Help</span> - -<div class="menuItem"> -<a href="apidocs/index.html">Javadocs</a> -</div> - -<div class="menuItem"> -<a href="faq.html">FAQ</a> -</div> - -<div class="menuItem"> -<a href="mailinglists.html">Mailing Lists</a> -</div> - -<div class="menuItem"> -<a href="https://bz.apache.org/bugzilla/buglist.cgi?product=POI">Bug Database</a> -</div> - -<div class="menuItem"> -<a href="changes.html">Changelog</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Getting Involved</span> - -<div class="menuItem"> -<a href="subversion.html">Subversion Repository</a> -</div> - -<div class="menuItem"> -<a href="howtobuild.html">How To Build</a> -</div> - -<div class="menuItem"> -<a href="guidelines.html">Contribution Guidelines</a> -</div> - -<div class="menuItem"> -<a href="who.html">Who We Are</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Component APIs</span> - -<div class="menuItem"> -<a href="spreadsheet/index.html">Excel (SS=HSSF+XSSF+SXSSF)</a> -</div> - -<div class="menuItem"> -<a href="slideshow/index.html">PowerPoint (SL=HSLF+XSLF)</a> -</div> - -<div class="menuItem"> -<a href="document/index.html">Word (WP=HWPF+XWPF)</a> -</div> - -<div class="menuItem"> -<a href="hsmf/index.html">Outlook (HSMF)</a> -</div> - -<div class="menuItem"> -<a href="diagram/index.html">Visio (HDGF+XDGF)</a> -</div> - -<div class="menuItem"> -<a href="hpbf/index.html">Publisher (HPBF)</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Low-level Component APIs</span> - -<div class="menuItem"> -<a href="poifs/index.html">OLE2 Filesystem (POIFS)</a> -</div> - -<div class="menuItem"> -<a href="hpsf/index.html">OLE2 Document Props (HPSF)</a> -</div> - -<div class="menuItem"> -<a href="hmef/index.html">TNEF (HMEF) for winmail.dat</a> -</div> - -<div class="menuItem"> -<a href="oxml4j/index.html">OpenXML4J (OOXML)</a> -</div> - -<div class="menuItem"> -<a href="logging.html">Logging framework</a> -</div> - </div> -<div class="menu"> -<span class="menuLabel">Apache Wide</span> - -<div class="menuItem"> +<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Apache Wide</div> +<div id="menu_1.2" class="menuitemgroup"> +<div class="menuitem"> <a href="https://www.apache.org/">Apache Software Foundation</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/licenses/">License</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/foundation/thanks.html">Thanks</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/security/">Security</a> </div> - </div> -<center> -<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png"></a> -</center> -</div> -</div> -<form target="_blank" action="https://www.google.com/search" method="get"> -<table summary="search" border="0" cellspacing="0" cellpadding="0"> -<tr> -<td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"> - Search Apache POI<br> -<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td colspan="3"><img height="7" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> -</tr> -</table> -</form> -</td> -<!--================= end Menu ==================--> -<!--================= start Content ==================--><td> -<div id="bodycol"> -<div class="app"> -<div align="center"> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"> +<a href="https://donate.apache.org/"><img border="0" title="Support Apache" alt="Support Apache - logo" src="images/support-asf.png" style="width: 125px;height: 125px;"></a> +</div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> <h1>Apache POI - Download Release Artifacts</h1> -</div> -<div class="h3"> - - - +<div id="front-matter"></div> <a name="Available+Downloads"></a> -<div class="h3"> -<h3>Available Downloads<a title="Permanent link" class="headerlink" href="#Available+Downloads">#</a> -</h3> -</div> - +<h2 class="boxed">Available Downloads</h2> +<div class="section"> <p> This page provides instructions on how to download and verify the Apache POI release artifacts. There are different versions available depending on how stable your code should be. </p> - <ul> - + <!-- li><a href="#POI-3.17-beta1">The latest beta release is Apache POI 3.17-beta1</a></li --> <li> -<a href="download.html#POI-3.17">The latest stable release is Apache POI 3.17</a> +<a href="#POI-3.17">The latest stable release is Apache POI 3.17</a> </li> <li> -<a href="download.html#nightly">Nightly/CI builds are available as well</a> +<a href="#nightly">Nightly/CI builds are available as well</a> </li> <li> -<a href="download.html#archive">Archives of all prior releases</a> +<a href="#archive">Archives of all prior releases</a> </li> </ul> - <p> Apache POI releases are available under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a> See the NOTICE file contained in each release artifact for applicable copyright attribution notices. </p> - <p> - To ensure that you have downloaded the true release you should <a href="download.html#verify">verify the integrity</a> + To ensure that you have downloaded the true release you should <a href="#verify">verify the integrity</a> of the files using the signatures and checksums available from this page. </p> - +</div> - + <!-- latest beta release --> - - + <!-- + <section id="POI-3.17-beta1"><title>01 July 2017 - POI 3.17-beta1 available</title> + <p>The Apache POI team is pleased to announce the release of 3.17-beta1. + Featured are a handful of new areas of functionality and numerous bug fixes.</p> + <p>A summary of changes is available in the + <a href="https://www.apache.org/dyn/closer.lua/poi/dev/RELEASE-NOTES-3.17-beta1.txt">Release Notes</a>. + A full list of changes is available in the <a href="changes.html">change log</a>. + People interested should also follow the <a href="site:mailinglists">dev list</a> + to track progress.</p> + <p> + The POI source release as well as the pre-built binary deployment packages are listed below. + Pre-built versions of all <a href="site:components">POI components</a> + are available in the central Maven repository under Group ID "org.apache.poi" and Version + "3.17-beta1". + </p> + <section id="POI-3.17-beta1-bin"><title>Binary Distribution</title> + <ul> + <li><a href="https://www.apache.org/dyn/closer.lua/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz">poi-bin-3.17-beta1-20170701.tar.gz</a> + (20.11 MB, <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz.asc">signature (.asc)</a>) + <br/> + MD5 checksum: <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz.md5"> + b0c29f837c4fe411c76ac73899f6cef3</a> + <br/> + SHA1 checksum: <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz.sha1"> + 5f9a85afa374209d885243051bd25b1f3524df35</a> + </li> + <li><a href="https://www.apache.org/dyn/closer.lua/poi/dev/bin/poi-bin-3.17-beta1-20170701.zip">poi-bin-3.17-beta1-20170701.zip</a> + (28.69 MB, <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.zip.asc">signature (.asc)</a>) + <br/> + MD5 checksum: <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.zip.md5"> + 01a851625c1e4f07e7c794a9a1ee34df</a> + <br/> + SHA1 checksum: <a href="https://www.apache.org/dist/poi/dev/bin/poi-bin-3.17-beta1-20170701.zip.sha1"> + 3c5bc487c842c7f6f65384be3a6f82538103892d</a> + </li> + </ul> + </section> + <section id="POI-3.17-beta1-src"><title>Source Distribution</title> + <ul> + <li><a href="https://www.apache.org/dyn/closer.lua/poi/dev/src/poi-src-3.17-beta1-20170701.tar.gz">poi-src-3.17-beta1-20170701.tar.gz</a> + (82.73 MB, <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.tar.gz.asc">signature (.asc)</a>) + <br/> + MD5 checksum: <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.tar.gz.md5"> + e70a44b2fe7abc8770e43fc7a1c37b59</a> + <br/> + SHA1 checksum: <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.tar.gz.sha1"> + fe9c808d38139fc7efe2de6c0a1a8d41283973cc</a> + </li> + <li><a href="https://www.apache.org/dyn/closer.lua/poi/dev/src/poi-src-3.17-beta1-20170701.zip">poi-src-3.17-beta1-20170701.zip</a> + (86.87 MB, <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.zip.asc">signature (.asc)</a>) + <br/> + MD5 checksum: <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.zip.md5"> + 5da06274e9a4ff9f22e1631408d68d5d</a> + <br/> + SHA1 checksum: <a href="https://www.apache.org/dist/poi/dev/src/poi-src-3.17-beta1-20170701.zip.sha1"> + 89e49927dd598f1a8b63b7febd7db3b5cb8dfa26</a> + </li> + </ul> + </section> + </section> + --> + <!-- latest final release --> <a name="POI-3.17"></a> -<div class="h3"> -<h3>15 September 2017 - POI 3.17 available<a title="Permanent link" class="headerlink" href="#POI-3.17">#</a> -</h3> -</div> - +<h2 class="boxed">15 September 2017 - POI 3.17 available</h2> +<div class="section"> <p>The Apache POI team is pleased to announce the release of 3.17. Featured are a handful of new areas of functionality and numerous bug fixes.</p> - <p>POI 3.17 is the last release to support Java 6. The next release will be 4.0.0 and supports min. Java 8.</p> - <p>A summary of changes is available in the <a href="https://www.apache.org/dyn/closer.lua/poi/dev/RELEASE-NOTES-3.17.txt">Release Notes</a>. A full list of changes is available in the <a href="changes.html">change log</a>. - People interested should also follow the <a href="mailinglists.html">dev list</a> + People interested should also follow the <a href="help/index.html">dev list</a> to track progress.</p> - <p> The POI source release as well as the pre-built binary deployment packages are listed below. - Pre-built versions of all <a href="overview.html#components">POI components</a> + Pre-built versions of all <a href="components/">POI components</a> are available in the central Maven repository under Group ID "org.apache.poi" and Version "3.17". </p> - <a name="POI-3.17-bin"></a> -<div class="h4"> -<h4>Binary Distribution<a title="Permanent link" class="headerlink" href="#POI-3.17-bin">#</a> -</h4> -</div> - +<h3 class="boxed">Binary Distribution</h3> <ul> <li> @@ -377,14 +330,8 @@ if (VERSION > 3) { </li> </ul> - - <a name="POI-3.17-src"></a> -<div class="h4"> -<h4>Source Distribution<a title="Permanent link" class="headerlink" href="#POI-3.17-src">#</a> -</h4> -</div> - +<h3 class="boxed">Source Distribution</h3> <ul> <li> @@ -422,23 +369,18 @@ if (VERSION > 3) { </li> </ul> - - +</div> <a name="nightly"></a> -<div class="h3"> -<h3>Nightly Builds<a title="Permanent link" class="headerlink" href="#nightly">#</a> -</h3> -</div> - +<h2 class="boxed">Nightly Builds</h2> +<div class="section"> <p>The POI nightly builds are run on the <a href="https://builds.apache.org/view/P/view/POI/">Jenkins</a> continuous integration server. <br> <strong>These builds should not be used in production</strong>: they are mostly intended for use by developers to help with resolving bugs and evaluating new features or users who want to try out the latest version. </p> - <ul> <li> @@ -447,21 +389,17 @@ if (VERSION > 3) { </li> </ul> - +</div> <a name="verify"></a> -<div class="h3"> -<h3>Verify<a title="Permanent link" class="headerlink" href="#verify">#</a> -</h3> -</div> - +<h2 class="boxed">Verify</h2> +<div class="section"> <p> It is essential that you verify the integrity of the downloaded files using the PGP and MD5 signatures. Please read <a href="https://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a> for more information on why you should verify our releases. This page provides detailed instructions which you can use for POI artifacts. </p> - <p> The PGP signatures can be verified using PGP or GPG. First <a href="https://svn.apache.org/repos/asf/poi/trunk/KEYS">download the KEYS file</a> @@ -469,32 +407,24 @@ if (VERSION > 3) { Make sure you get these files from the main distribution directory, rather than from a mirror. Then <a href="https://www.apache.org/info/verification.html">verify the signatures</a>. </p> - <p> As an example: </p> - <pre class="code"> % pgpk -a KEYS % pgpv poi-X.Y.Z.jar.asc - </pre> - + </pre> <p>or</p> - <pre class="code"> % pgp -ka KEYS % pgp poi-X.Y.Z.jar.asc </pre> - <p>or</p> - <pre class="code"> % gpg --import KEYS % gpg --verify poi-X.Y.Z.jar.asc poi-X.Y.Z.jar </pre> - <p>Sample verification of poi-bin-3.5-FINAL-20090928.tar.gz</p> - <pre class="code"> % gpg --import KEYS gpg: key 12DAE9BE: "Glen Stampoultzis <glens at apache dot org>" not changed @@ -517,20 +447,16 @@ uid Yegor Kozlov <ye uid Yegor Kozlov <yegor at apache dot org> sub 4096g/7B45A98A 2007-06-18 [expires: 2012-06-16] </pre> - +</div> <a name="archive"></a> -<div class="h3"> -<h3>Release Archives<a title="Permanent link" class="headerlink" href="#archive">#</a> -</h3> -</div> - +<h2 class="boxed">Release Archives</h2> +<div class="section"> <p> Apache POI became a top level project in June 2007 and POI 3.0 artifacts were re-released. Prior to that date POI was a sub-project of <a href="https://jakarta.apache.org/">Apache Jakarta.</a> </p> - <ul> <li> @@ -540,7 +466,9 @@ sub 4096g/7B45A98A 2007-06-18 [expires <li> <a href="https://archive.apache.org/dist/poi/release/src/">Source Artifacts</a> </li> - + <!-- We don't encourage using beta builds, but if someone needs a beta build because of an unfixed bug + that was introduced between a beta release and a final release, beta releases are also archived. + archived beta releases: https://archive.apache.org/dist/poi/dev/ --> <li> <a href="https://archive.apache.org/dist/poi/">Keys</a> @@ -551,50 +479,34 @@ sub 4096g/7B45A98A 2007-06-18 [expires </li> </ul> - - - - </div> + </div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> </div> -</td> -<!--================= end Content ==================--> -</tr> -</tbody> -</table> -<!--================= end Main ==================--> -<!--================= start Footer ==================--> <div id="footer"> -<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> -<tbody> -<tr> -<!--================= start Copyright ==================--> -<td colspan="2"> -<div align="center"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> <div class="copyright"> - Copyright © 2002-2018 The Apache Software Foundation. All rights reserved.<br> - Apache, Apache POI, and the Apache POI logo are registered trademarks or - trademarks of The Apache Software Foundation in the U.S. and/or other countries. - </div> -</div> -</td> -<!--================= end Copyright ==================--> -</tr> -<tr> -<td align="left"> -<!--================= start Host ==================--> -<!--================= end Host ==================--></td><td align="right"> -<!--================= start Credits ==================--> -<div align="right"> -<div class="credit"></div> -</div> -<!--================= end Credits ==================--> -</td> -</tr> -</tbody> -</table> + Copyright © + 2001-2018 <a href="https://www.apache.org/">The Apache Software Foundation</a> +</div> +<div id="feedback"> + Send feedback about the website to: + <a id="feedbackto" href="mailto:[email protected]?subject=Feedback%C2%A0download.html">[email protected]</a> +</div> +<!--+ + |end bottomstrip + +--> </div> -<!--================= end Footer ==================--> </body> </html> Modified: poi/site/publish/encryption.html URL: http://svn.apache.org/viewvc/poi/site/publish/encryption.html?rev=1836244&r1=1836243&r2=1836244&view=diff ============================================================================== --- poi/site/publish/encryption.html (original) +++ poi/site/publish/encryption.html Wed Jul 18 23:27:21 2018 @@ -1,282 +1,188 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<!--*** This is a generated file. Do not edit. ***--> -<link rel="stylesheet" href="skin/tigris.css" type="text/css"> -<link rel="stylesheet" href="skin/mysite.css" type="text/css"> -<link rel="stylesheet" href="skin/site.css" type="text/css"> -<link media="print" rel="stylesheet" href="skin/print.css" type="text/css"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.9"> +<meta name="Forrest-skin-name" content="pelt"> <title>Apache POI - Encryption support</title> +<link type="text/css" href="skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="skin/print.css" rel="stylesheet"> +<link type="text/css" href="skin/profile.css" rel="stylesheet"> +<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="images/favicon.ico"> </head> -<body bgcolor="white" class="composite"> -<!--================= start Banner ==================--> -<div id="banner"> -<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> -<tbody> -<tr> -<!--================= start Group Logo ==================--> -<td width="50%" align="left"> -<div class="groupLogo"> -<a href="https://www.apache.org"><img border="0" class="logoImage" alt="The Apache Software Foundation" src="resources/images/asf_logo.png"></a> -</div> -</td> -<!--================= end Group Logo ==================--> -<!--================= start Project Logo ==================--><td width="50%" align="right"> -<div align="right" class="projectLogo"> -<a href="https://donate.apache.org/"><img border="0" class="logoImage" alt="Support Apache" src="resources/images/support-asf.png" width="120" height="120" title="Your donation helps The Apache Software Foundation ensure its community-driven software remains available to billions of users at absolutely no cost."></a><a href="https://poi.apache.org/"><img border="0" class="logoImage" alt="Apache POI" src="resources/images/pb-poi.png" width="120" height="120" title="Apache POI - the Java API for Microsoft Documents"></a> -</div> -</td> -<!--================= end Project Logo ==================--> -</tr> -</tbody> -</table> -</div> -<!--================= end Banner ==================--> -<!--================= start Main ==================--> -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> -<tbody> -<!--================= start Status ==================--> -<tr class="status"> -<td> -<!--================= start BreadCrumb ==================--><a href="https://www.apache.org/">Apache</a> | <a href="https://poi.apache.org/">POI</a><a href=""></a> -<!--================= end BreadCrumb ==================--></td><td id="tabs"> -<!--================= start Tabs ==================--> -<div class="tab"> -<span class="selectedTab"><a class="base-selected" href="index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> -function printit() { -if (window.print) { - window.print() ; -} else { - var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; -document.body.insertAdjacentHTML('beforeEnd', WebBrowser); - WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; -} -} -</script><script language="Javascript" type="text/javascript"> -var NS = (navigator.appName == "Netscape"); -var VERSION = parseInt(navigator.appVersion); -if (VERSION > 3) { - document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); -} -</script> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="https://www.apache.org">Apache Software Foundation</a> > <a href="https://poi.apache.org">Apache POI</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="https://www.apache.org"><img class="logoImage" alt="Apache Software Foundation" src="images/group-logo.png" title="The Apache Software Foundation is a cornerstone of the modern Open Source software ecosystem – supporting some of the most widely used and important software solutions powering today's Internet economy."></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="https://poi.apache.org"><img class="logoImage" alt="Apache POI" src="images/project-logo.png" title="Apache POI is well-known in the Java field as a library for reading and writing Microsoft Office file formats, such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both the older (OLE2) and new (OOXML - Office Open XML) formats."></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="poi.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> </div> -<!--================= end Tabs ==================--> -</td> -</tr> -</tbody> -</table> -<!--================= end Status ==================--> -<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> -<tbody> -<tr valign="top"> -<!--================= start Menu ==================--> -<td id="leftcol"> -<div id="navcolumn"> -<div class="menuBar"> -<div class="menu"> -<span class="menuLabel">Overview</span> - -<div class="menuItem"> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li class="current"> +<a class="selected" href="index.html">Home</a> +</li> +<li> +<a class="unselected" href="help/index.html">Help</a> +</li> +<li> +<a class="unselected" href="components/index.html">Component APIs</a> +</li> +<li> +<a class="unselected" href="devel/index.html">Getting Involved</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Overview</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> <a href="index.html">Home</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="download.html">Download</a> </div> - -<div class="menuItem"> -<a href="overview.html">Components</a> +<div class="menuitem"> +<a href="changes.html">Changelog</a> </div> - -<div class="menuItem"> +<div class="menuitem"> +<a href="apidocs/index.html">Javadocs</a> +</div> +<div class="menuitem"> <a href="text-extraction.html">Text Extraction</a> </div> - -<div class="menuItem"> -<span class="menuSelected">Encryption support</span> +<div class="menupage"> +<div class="menupagetitle">Encryption support</div> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="casestudies.html">Case Studies</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="related-projects.html">Related projects</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="legal.html">Legal</a> </div> - -</div> -<div class="menu"> -<span class="menuLabel">Help</span> - -<div class="menuItem"> -<a href="apidocs/index.html">Javadocs</a> -</div> - -<div class="menuItem"> -<a href="faq.html">FAQ</a> -</div> - -<div class="menuItem"> -<a href="mailinglists.html">Mailing Lists</a> -</div> - -<div class="menuItem"> -<a href="https://bz.apache.org/bugzilla/buglist.cgi?product=POI">Bug Database</a> -</div> - -<div class="menuItem"> -<a href="changes.html">Changelog</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Getting Involved</span> - -<div class="menuItem"> -<a href="subversion.html">Subversion Repository</a> -</div> - -<div class="menuItem"> -<a href="howtobuild.html">How To Build</a> -</div> - -<div class="menuItem"> -<a href="guidelines.html">Contribution Guidelines</a> -</div> - -<div class="menuItem"> -<a href="who.html">Who We Are</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Component APIs</span> - -<div class="menuItem"> -<a href="spreadsheet/index.html">Excel (SS=HSSF+XSSF+SXSSF)</a> -</div> - -<div class="menuItem"> -<a href="slideshow/index.html">PowerPoint (SL=HSLF+XSLF)</a> -</div> - -<div class="menuItem"> -<a href="document/index.html">Word (WP=HWPF+XWPF)</a> -</div> - -<div class="menuItem"> -<a href="hsmf/index.html">Outlook (HSMF)</a> -</div> - -<div class="menuItem"> -<a href="diagram/index.html">Visio (HDGF+XDGF)</a> -</div> - -<div class="menuItem"> -<a href="hpbf/index.html">Publisher (HPBF)</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Low-level Component APIs</span> - -<div class="menuItem"> -<a href="poifs/index.html">OLE2 Filesystem (POIFS)</a> </div> - -<div class="menuItem"> -<a href="hpsf/index.html">OLE2 Document Props (HPSF)</a> -</div> - -<div class="menuItem"> -<a href="hmef/index.html">TNEF (HMEF) for winmail.dat</a> -</div> - -<div class="menuItem"> -<a href="oxml4j/index.html">OpenXML4J (OOXML)</a> -</div> - -<div class="menuItem"> -<a href="logging.html">Logging framework</a> -</div> - -</div> -<div class="menu"> -<span class="menuLabel">Apache Wide</span> - -<div class="menuItem"> +<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Apache Wide</div> +<div id="menu_1.2" class="menuitemgroup"> +<div class="menuitem"> <a href="https://www.apache.org/">Apache Software Foundation</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/licenses/">License</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/foundation/thanks.html">Thanks</a> </div> - -<div class="menuItem"> +<div class="menuitem"> <a href="https://www.apache.org/security/">Security</a> </div> - -</div> -<center> -<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png"></a> -</center> </div> -</div> -<form target="_blank" action="https://www.google.com/search" method="get"> -<table summary="search" border="0" cellspacing="0" cellpadding="0"> -<tr> -<td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"> - Search Apache POI<br> -<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td colspan="3"><img height="7" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> -</tr> -</table> -</form> -</td> -<!--================= end Menu ==================--> -<!--================= start Content ==================--><td> -<div id="bodycol"> -<div class="app"> -<div align="center"> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"> +<a href="https://donate.apache.org/"><img border="0" title="Support Apache" alt="Support Apache - logo" src="images/support-asf.png" style="width: 125px;height: 125px;"></a> +</div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> <h1>Apache POI - Encryption support</h1> -</div> -<div class="h3"> - - - +<div id="front-matter"></div> <a name="Overview"></a> -<div class="h3"> -<h3>Overview<a title="Permanent link" class="headerlink" href="#Overview">#</a> -</h3> -</div> - +<h2 class="boxed">Overview</h2> +<div class="section"> <p>Apache POI contains support for reading few variants of encrypted office files: </p> - <ul> <li>Binary formats (.xls, .ppt, .doc, ...)<br> encryption is format-dependent and needs to be implemented per format differently.<br> - Use <a href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html"> - Biff8EncryptionKey</a>.<a href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html#setCurrentUserPassword(java.lang.String)">setCurrentUserPassword</a>(String password) + Use <a href="apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html"> + Biff8EncryptionKey</a>.<a href="apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html#setCurrentUserPassword(java.lang.String)">setCurrentUserPassword</a>(String password) to specify the decryption password before opening the file or (where applicable) before saving. Setting a null password before saving removes the password protection.<br> The password is set in a thread local variable. Do not forget to reset it to null after text extraction. @@ -297,22 +203,16 @@ if (VERSION > 3) { </li> </ul> - - <p>Some "write-protected" files are encrypted with the built-in password "VelvetSweatshop", POI can read that files too.</p> - - - -<a name="Supported+feature+matrix"></a> -<div class="h3"> -<h3>Supported feature matrix<a title="Permanent link" class="headerlink" href="#Supported+feature+matrix">#</a> -</h3> </div> -<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<a name="Supported+feature+matrix"></a> +<h2 class="boxed">Supported feature matrix</h2> +<div class="section"> +<table class="autosize POITable"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Encryption</th> <th colspan="1" rowspan="1">HSSF</th> @@ -321,7 +221,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd949802(v=office.12).aspx">XOR obfuscation *)</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes (Writing since 3.16)</td> @@ -330,7 +230,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd909583(v=office.12).aspx">40-bit RC4 encryption</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes (Writing since 3.16)</td> @@ -339,7 +239,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd910113(v=office.12).aspx">Office Binary Document RC4 CryptoAPI Encryption</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes (Since 3.16)</td> @@ -348,7 +248,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <th colspan="1" rowspan="1"></th> <th colspan="1" rowspan="1">XSSF</th> @@ -357,7 +257,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd907466(v=office.12).aspx">Office Binary Document RC4 Encryption **)</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes</td> @@ -366,7 +266,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd906131(v=office.12).aspx">ECMA-376 Standard Encryption</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes</td> @@ -375,7 +275,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/dd906131(v=office.12).aspx">ECMA-376 Agile Encryption</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes</td> @@ -384,7 +284,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"><a href="https://msdn.microsoft.com/en-us/library/ms757845(v=vs.85).aspx">ECMA-376 XML Signature</a></td> <td class="feature-yes" colspan="1" rowspan="1">Yes</td> @@ -394,31 +294,22 @@ if (VERSION > 3) { </tr> </table> - - <p>*) the xor encryption is flawed and works only for very small files - see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59857">#59857</a>. </p> - - <p>**) the <a href="https://msdn.microsoft.com/en-us/library/cc313071(v=office.12).aspx">MS-OFFCRYPTO</a> documentation only mentions the RC4 (without CryptoAPI) encryption as a "in place" encryption, but apparently there's also a container based method with that key generation logic. </p> - +</div> <a name="Binary+formats"></a> -<div class="h3"> -<h3>Binary formats<a title="Permanent link" class="headerlink" href="#Binary+formats">#</a> -</h3> -</div> - +<h2 class="boxed">Binary formats</h2> +<div class="section"> <p>As mentioned above, use - <a href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html"> - Biff8EncryptionKey</a>.<a href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html#setCurrentUserPassword(java.lang.String)">setCurrentUserPassword</a>(String password) + <a href="apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html"> + Biff8EncryptionKey</a>.<a href="apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html#setCurrentUserPassword(java.lang.String)">setCurrentUserPassword</a>(String password) to specify the password.</p> - - <pre class="code"> // XOR/RC4 decryption for xls Biff8EncryptionKey.setCurrentUserPassword("pass"); @@ -426,8 +317,6 @@ NPOIFSFileSystem fs = new NPOIFSFileSyst HSSFWorkbook hwb = new HSSFWorkbook(fs.getRoot(), true); Biff8EncryptionKey.setCurrentUserPassword(null); </pre> - - <pre class="code"> // RC4 CryptoApi support ppt - decryption Biff8EncryptionKey.setCurrentUserPassword("pass"); @@ -450,19 +339,14 @@ OutputStream os = new FileOutputStream(" hss.write(os); os.close(); </pre> - +</div> <a name="XML-based+formats+-+Decryption"></a> -<div class="h3"> -<h3>XML-based formats - Decryption<a title="Permanent link" class="headerlink" href="#XML-based+formats+-+Decryption">#</a> -</h3> -</div> - +<h2 class="boxed">XML-based formats - Decryption</h2> +<div class="section"> <p>XML-based formats are stored in OLE-package stream "EncryptedPackage". Use org.apache.poi.poifs.crypt.Decryptor to decode file:</p> - - <pre class="code"> EncryptionInfo info = new EncryptionInfo(filesystem); Decryptor d = Decryptor.getInstance(info); @@ -480,24 +364,18 @@ try { throw new RuntimeException("Unable to process encrypted document", ex); } </pre> - - <p>If you want to read file encrypted with build-in password, use Decryptor.DEFAULT_PASSWORD.</p> - +</div> <a name="XML-based+formats+-+Encryption"></a> -<div class="h3"> -<h3>XML-based formats - Encryption<a title="Permanent link" class="headerlink" href="#XML-based+formats+-+Encryption">#</a> -</h3> -</div> - +<h2 class="boxed">XML-based formats - Encryption</h2> +<div class="section"> <p>Encrypting a file is similar to the above decryption process. Basically you'll need to choose between - <a href="https://poi.apache.org/apidocs/org/apache/poi/poifs/crypt/EncryptionMode.html">binaryRC4, standard and agile encryption</a>, + <a href="apidocs/org/apache/poi/poifs/crypt/EncryptionMode.html">binaryRC4, standard and agile encryption</a>, the cryptoAPI mode is used internally and it's direct use would result in an incomplete file. Apart of the CipherMode, the EncryptionInfo class provides further parameters to specify the cipher and hashing algorithm to be used.</p> - <pre class="code"> POIFSFileSystem fs = new POIFSFileSystem(); EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile); @@ -517,27 +395,22 @@ FileOutputStream fos = new FileOutputStr fs.writeFilesystem(fos); fos.close(); </pre> - +</div> <a name="XML-based+formats+-+Signing+%28XML+Signature%29"></a> -<div class="h3"> -<h3>XML-based formats - Signing (XML Signature)<a title="Permanent link" class="headerlink" href="#XML-based+formats+-+Signing+%28XML+Signature%29">#</a> -</h3> -</div> - +<h2 class="boxed">XML-based formats - Signing (XML Signature)</h2> +<div class="section"> <p>An Office document can be digital signed by a <a href="https://en.wikipedia.org/wiki/XML_Signature">XML Signature</a> to protect it from unauthorized modifications, i.e. modifications without having the original certificate. - The current implementation is based on the + The current implementation is based on the <!--<a href="http://eid-applet.googlecode.com">eID Applet</a>--> <a href="https://github.com/e-Contract/eid-applet">eID Applet</a> which - is dual-licensed to + is dual-licensed to <!--<a href="https://code.google.com/p/eid-applet/source/browse/trunk/README.txt">ASF/POI</a>--> <a href="https://github.com/e-Contract/eid-applet/blob/master/README.md#7-license">Apache License 2.0 and LGPL v3.0</a>. - Instead of using the internal <a href="http://www.jsourcecode.com/class.php?proj=jdk%5Copenjdk&jar=openjdk-6-b14&class=org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory">JDK API</a> + Instead of using the internal <a href="http://www.jsourcecode.com/class.php?proj=jdk%5Copenjdk&jar=openjdk-6-b14&class=org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory">JDK API</a> this version is based on <a href="https://santuario.apache.org">Apache Santuario</a>.</p> - <p>The classes have been tested against the following libraries, which need to be included additionally to the - <a href="overview.html#components">default dependencies</a>:</p> - + <a href="components/">default dependencies</a>:</p> <ul> <li>BouncyCastle bcpkix and bcprov (tested against 1.59)</li> @@ -547,17 +420,13 @@ fos.close(); <li>and slf4j-api (tested against 1.7.25)</li> </ul> - -<p>Depending on the <a href="https://poi.apache.org/apidocs/org/apache/poi/poifs/crypt/dsig/SignatureConfig.html">configuration</a> - and the activated <a href="https://poi.apache.org/apidocs/org/apache/poi/poifs/crypt/dsig/facets/package-summary.html">facets</a> +<p>Depending on the <a href="apidocs/org/apache/poi/poifs/crypt/dsig/SignatureConfig.html">configuration</a> + and the activated <a href="apidocs/org/apache/poi/poifs/crypt/dsig/facets/package-summary.html">facets</a> various <a href="https://en.wikipedia.org/wiki/XAdES">XAdES levels</a> are supported - the support for higher levels (XAdES-T+) depend on supporting services and although the code is adopted, the integration is not well tested ... please support us on integration (testing) with timestamp and revocation (OCSP) services. </p> - <p>Further test examples can be found in the corresponding <a href="https://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?view=markup">test class</a>.</p> - - <p>If you want to use a hash algorithm with 64 bytes (currently only applies to SHA512), <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42061">a base64 "feature"</a> in xmlsec leads to line breaks in the digest values, which won't be accepted by Office. To workaround this, you @@ -565,16 +434,12 @@ fos.close(); <strong>-Dorg.apache.xml.security.ignoreLineBreaks=true</strong> </p> - - - -<a name="Validating+a+signed+office+document"></a> -<div class="h3"> -<h3>Validating a signed office document<a title="Permanent link" class="headerlink" href="#Validating+a+signed+office+document">#</a> -</h3> </div> +<a name="Validating+a+signed+office+document"></a> +<h2 class="boxed">Validating a signed office document</h2> +<div class="section"> <pre class="code"> OPCPackage pkg = OPCPackage.open(..., PackageAccess.READ); SignatureConfig sic = new SignatureConfig(); @@ -584,22 +449,14 @@ si.setSignatureConfig(sic); boolean isValid = si.verifySignature(); ... </pre> - - - -<a name="Signing+an+office+document"></a> -<div class="h3"> -<h3>Signing an office document<a title="Permanent link" class="headerlink" href="#Signing+an+office+document">#</a> -</h3> </div> +<a name="Signing+an+office+document"></a> +<h2 class="boxed">Signing an office document</h2> +<div class="section"> <a name="Signing+a+file"></a> -<div class="h4"> -<h4>Signing a file<a title="Permanent link" class="headerlink" href="#Signing+a+file">#</a> -</h4> -</div> - +<h3 class="boxed">Signing a file</h3> <pre class="code"> // loading the keystore - pkcs12 is used here, but of course jks & co are also valid // the keystore needs to contain a private key and it's certificate having a @@ -633,20 +490,11 @@ assert (b); // write the changes back to disc pkg.close(); </pre> - - - <a name="Signing+a+stream+-+in-memory"></a> -<div class="h4"> -<h4>Signing a stream - in-memory<a title="Permanent link" class="headerlink" href="#Signing+a+stream+-+in-memory">#</a> -</h4> -</div> - +<h3 class="boxed">Signing a stream - in-memory</h3> <p>When saving a OOXML document, POI creates missing relations on the fly. Therefore calling the signing method before would result in an invalid signature. Instead of trying to fix all save invocations, the user is asked to save the stream before in a intermediate byte array (stream) and process this stream instead.</p> - - <pre class="code"> // load the key and setup SignatureConfig ... - see "Signing a file" @@ -671,73 +519,45 @@ pkg.close(); // bos now contains the signed ooxml document </pre> - - +</div> <a name="Encrypting+temporary+files+created+when+unzipping+an+OOXML+document"></a> -<div class="h3"> -<h3>Encrypting temporary files created when unzipping an OOXML document<a title="Permanent link" class="headerlink" href="#Encrypting+temporary+files+created+when+unzipping+an+OOXML+document">#</a> -</h3> -</div> - +<h2 class="boxed">Encrypting temporary files created when unzipping an OOXML document</h2> +<div class="section"> <p>For security-conscious environments where data at rest must be stored encrypted, the creation of plaintext temporary files is a grey area.</p> - - <p>The code example, written by PJ Fanning, modifies the behavior of SXSSFWorkbook to extract an OOXML spreadsheet zipped container and write the contents to disk using AES encryption.</p> - - <p>See <a href="https://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java?view=markup">SXSSFWorkbookWithCustomZipEntrySource.java</a> - and other <a href="https://svn.apache.org/viewvc?view=revision&revision=1768744">files</a> + and other <a href="https://svn.apache.org/viewvc?view=revision&revision=1768744">files</a> that are needed for this example.</p> - +</div> <a name="Debugging+XML+signature+issues"></a> -<div class="h3"> -<h3>Debugging XML signature issues<a title="Permanent link" class="headerlink" href="#Debugging+XML+signature+issues">#</a> -</h3> -</div> - +<h2 class="boxed">Debugging XML signature issues</h2> +<div class="section"> <p>Finding the source of a XML signature problem can be sometimes a pain in the ... neck, because the hashing of the canonicalized form is more or less intransparent done in the background.</p> - - - <p>One of the tripping hazards are <a href="https://stackoverflow.com/questions/36063375">different linebreaks in Windows/Unix</a>, therefore use the non-indent form of the xmls.</p> - - <p>The next thing is to compare successful signed documents from Office vs. POIs generated signature, i.e. unzip both files and look for differences. Usually the package relations (*.rels) will be different, and the sig1.xml, core.xml and [Content_Types].xml due to different order of the references.</p> - - <p>The package relationsships (*.rels) will be specially handled, i.e. they will be filtered and only a subset will be processed - see <a href="https://www.ecma-international.org/activities/Office%20Open%20XML%20Formats/Draft%20ECMA-376%203rd%20edition,%20March%202011/Office%20Open%20XML%20Part%202%20-%20Open%20Packaging%20Conventions.pdf">13.2.4.24 Relationships Transform Algorithm</a>.</p> - - <p>To check the processed files in the canonicalized form, the below UnsyncBufferedOutputStream class needs to be injected/replaced. Put the .class file in separate directory and add the following JVM parameters:</p> - - <pre class="code"> -Djava.io.tmpdir=<em><custom temp directory></em> -Xbootclasspath/p:<em><preload dir, which contains /org/apache/xml/security/utils/UnsyncBufferedOutputStream.class></em> -Dorg.apache.poi.util.POILogger=org.apache.poi.util.CommonsLogger -Djava.util.logging.config.file=<em><a dir containing ...></em>/logging.properties </pre> - - <a name="UnsyncBufferedOutputStream%3A"></a> -<div class="h4"> -<h4>UnsyncBufferedOutputStream:<a title="Permanent link" class="headerlink" href="#UnsyncBufferedOutputStream%3A">#</a> -</h4> -</div> - +<h3 class="boxed">UnsyncBufferedOutputStream:</h3> <pre class="code"> package org.apache.xml.security.utils; @@ -825,67 +645,44 @@ public class UnsyncBufferedOutputStream } </pre> - - - <a name="logging.properties"></a> -<div class="h4"> -<h4>logging.properties<a title="Permanent link" class="headerlink" href="#logging.properties">#</a> -</h4> -</div> - +<h3 class="boxed">logging.properties</h3> <pre class="code"> handlers = org.slf4j.bridge.SLF4JBridgeHandler .level=ALL org.slf4j.bridge.SLF4JBridgeHandler.level=ALL </pre> - - - - - - -<div id="authors" align="right">by Maxim Valyanskiy, Andreas Beeker</div> </div> + +<p align="right"> +<font size="-2">by Maxim Valyanskiy, Andreas Beeker</font> +</p> </div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> </div> -</td> -<!--================= end Content ==================--> -</tr> -</tbody> -</table> -<!--================= end Main ==================--> -<!--================= start Footer ==================--> <div id="footer"> -<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> -<tbody> -<tr> -<!--================= start Copyright ==================--> -<td colspan="2"> -<div align="center"> -<div class="copyright"> - Copyright © 2002-2018 The Apache Software Foundation. All rights reserved.<br> - Apache, Apache POI, and the Apache POI logo are registered trademarks or - trademarks of The Apache Software Foundation in the U.S. and/or other countries. - </div> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> </div> -</td> -<!--================= end Copyright ==================--> -</tr> -<tr> -<td align="left"> -<!--================= start Host ==================--> -<!--================= end Host ==================--></td><td align="right"> -<!--================= start Credits ==================--> -<div align="right"> -<div class="credit"></div> +<div class="copyright"> + Copyright © + 2001-2018 <a href="https://www.apache.org/">The Apache Software Foundation</a> </div> -<!--================= end Credits ==================--> -</td> -</tr> -</tbody> -</table> +<div id="feedback"> + Send feedback about the website to: + <a id="feedbackto" href="mailto:[email protected]?subject=Feedback%C2%A0encryption.html">[email protected]</a> +</div> +<!--+ + |end bottomstrip + +--> </div> -<!--================= end Footer ==================--> </body> </html> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
