<p dir="auto">TL;DR archive/zip cannot decompress a password protected with AES 256 encryption, deflated archive.</p>
<p dir="auto">Answers to the 5 questions:</p>
<ul dir="auto">
<li>go version go1.5 darwin/amd64</li>
<li>OSX Yosemite Version 10.10.5 (14F27) / 2.4 GHz Intel Core 2 Duo</li>
<li>Attempted to unzip password protected .zip file:
<ul dir="auto">
<li>Password Encryption was set to AES256</li>
<li>Zip Compression Method was set to COMP_DEFLATE</li>
<li>Zip Compression Level was set to DEFLATE_LEVEL_NORMAL</li>
</ul>
</li>
<li>Expected that the zip file would be extracted fully – as successfully tested using other tools including <a href="http://unarchiver.c3.cx/commandline" rel="nofollow">unar</a> and <a href="http://online.b1.org/online" rel="nofollow">http://online.b1.org/online</a></li>
<li>err returned ErrAlgorithm – "zip: unsupported compression algorithm"</li>
</ul>
<p dir="auto">I should begin by mentioning that, if the Java code is modified to comment out the following lines; that archive/zip can handle these files without issue:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="// parameters.setEncryptFiles(true);
// parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
// parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
// parameters.setPassword(&quot;verySecurePassword&quot;);"><pre class="notranslate"><code class="notranslate">// parameters.setEncryptFiles(true);
// parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
// parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
// parameters.setPassword("verySecurePassword");
</code></pre></div>
<p dir="auto">The jar file for <code class="notranslate">net.lingala.zip4j</code> is at  <a href="http://www.lingala.net/zip4j/download.php" rel="nofollow">www.lingala.net/zip4j/download.php</a>; The following commands compiled and ran the java code below in terminal:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$&gt; javac -cp zip4j_1.3.2.jar ZipTest.java
$&gt; java -cp .:./zip4j_1.3.2.jar ZipTest"><pre class="notranslate"><code class="notranslate">$&gt; javac -cp zip4j_1.3.2.jar ZipTest.java
$&gt; java -cp .:./zip4j_1.3.2.jar ZipTest
</code></pre></div>
<p dir="auto">Below is the Java code used to generate the zip file.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import java.io.File;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;

public class ZipTest {

    public static void main(String[] args)
    {
        System.out.println(&quot;starting...&quot;);

        try {
            ZipFile zipFile = new ZipFile(&quot;/Users/alex/Desktop/test_nopass.zip&quot;);

            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
            parameters.setPassword(&quot;verySecurePassword&quot;);

            zipFile.addFile(new File(&quot;/Users/alex/Desktop/test.txt&quot;), parameters);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        System.out.println(&quot;done&quot;);
    }
}"><pre class="notranslate"><code class="notranslate">import java.io.File;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;

public class ZipTest {

    public static void main(String[] args)
    {
        System.out.println("starting...");

        try {
            ZipFile zipFile = new ZipFile("/Users/alex/Desktop/test_nopass.zip");

            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
            parameters.setPassword("verySecurePassword");

            zipFile.addFile(new File("/Users/alex/Desktop/test.txt"), parameters);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        System.out.println("done");
    }
}
</code></pre></div>
<p dir="auto">and below is the main.go code for attempting to decompress the zip archive</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="package main

import (
    &quot;archive/zip&quot;
    &quot;fmt&quot;
    &quot;log&quot;
    &quot;os&quot;
    &quot;path&quot;
)

func main() {
    // Open a zip archive for reading.
    r, err := zip.OpenReader(&quot;/Users/alex/Desktop/test.zip&quot;)
    if err != nil {
        log.Fatal(err)
    }
    defer r.Close()

    // Iterate through the files in the archive,
    // printing some of their contents.
    for _, fi := range r.File {
        fmt.Printf(&quot;Contents of %s:\n&quot;, fi.Name)
        fmt.Printf(&quot;Size compressed: %d bytes\n&quot;, fi.CompressedSize64)
        fmt.Printf(&quot;Size uncompressed:%d bytes\n&quot;, fi.UncompressedSize64)
        fmt.Printf(&quot;Creator Version: %d\n&quot;, fi.CreatorVersion)
        fmt.Printf(&quot;Reader Version: %d\n&quot;, fi.ReaderVersion)
        fmt.Printf(&quot;Flags: %d\n&quot;, fi.Flags)
        fmt.Printf(&quot;Method: %d\n&quot;, fi.Method)
        fmt.Printf(&quot;Extra: %s\n&quot;, fi.Extra)

        f, err := os.Create(path.Join(&quot;/Users/alex/Desktop&quot;, fi.Name))
        if err != nil {
            f.Close()
            fmt.Println(err)
        }

        rc, err := fi.DataOffset()
        if err != nil {
            fmt.Println(err)
        } else {
            fmt.Printf(&quot;%d&quot;, rc)
        }
        f.Close()
    }
    fmt.Println(&quot;DONE!&quot;)
}"><pre class="notranslate"><code class="notranslate">package main

import (
    "archive/zip"
    "fmt"
    "log"
    "os"
    "path"
)

func main() {
    // Open a zip archive for reading.
    r, err := zip.OpenReader("/Users/alex/Desktop/test.zip")
    if err != nil {
        log.Fatal(err)
    }
    defer r.Close()

    // Iterate through the files in the archive,
    // printing some of their contents.
    for _, fi := range r.File {
        fmt.Printf("Contents of %s:\n", fi.Name)
        fmt.Printf("Size compressed: %d bytes\n", fi.CompressedSize64)
        fmt.Printf("Size uncompressed:%d bytes\n", fi.UncompressedSize64)
        fmt.Printf("Creator Version: %d\n", fi.CreatorVersion)
        fmt.Printf("Reader Version: %d\n", fi.ReaderVersion)
        fmt.Printf("Flags: %d\n", fi.Flags)
        fmt.Printf("Method: %d\n", fi.Method)
        fmt.Printf("Extra: %s\n", fi.Extra)

        f, err := os.Create(path.Join("/Users/alex/Desktop", fi.Name))
        if err != nil {
            f.Close()
            fmt.Println(err)
        }

        rc, err := fi.DataOffset()
        if err != nil {
            fmt.Println(err)
        } else {
            fmt.Printf("%d", rc)
        }
        f.Close()
    }
    fmt.Println("DONE!")
}
</code></pre></div>
<p dir="auto">ZIP file format specification includes encrypted archives.<br>
Current implementation doesn't support writing/reading such archives.</p>