/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.internal.util.jna; import java.util.Arrays; import java.util.List; import com.sun.jna.Memory; import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.Structure; import com.sun.jna.WString; import com.sun.jna.win32.StdCallLibrary; /** * @version 1.3 * @author TMate Software Ltd. */ interface ISVNWinCryptLibrary extends StdCallLibrary { public static class DATA_BLOB extends Structure { public DATA_BLOB(byte[] bytes) { if (bytes != null) { int allocationSize = Math.max(1, bytes.length); cbData = new Memory(allocationSize); cbData.write(0, bytes, 0, bytes.length); cbSize = new NativeLong(bytes.length); } else { cbSize = new NativeLong(0); cbData = Pointer.NULL; } } public NativeLong cbSize; public Pointer cbData; protected List<String> getFieldOrder() { return Arrays.asList("cbSize", "cbData"); } } public boolean CryptProtectData(Pointer dataIn, WString description, Pointer entropy, Pointer reserved, Pointer struct, NativeLong flags, Pointer out); public boolean CryptUnprotectData(Pointer dataIn, Pointer description, Pointer entropy, Pointer reserved, Pointer struct, NativeLong flags, Pointer out); }