source: osm/applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/mac/SecurityLibrary.java@ 30822

Last change on this file since 30822 was 30822, checked in by donvip, 10 years ago

[josm_native-password-manager] update Netbeans Keyring code + make plugin rely on JNA plugin

File size: 4.0 KB
Line 
1/*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 *
4 * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
5 *
6 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7 * Other names may be trademarks of their respective owners.
8 *
9 * The contents of this file are subject to the terms of either the GNU
10 * General Public License Version 2 only ("GPL") or the Common
11 * Development and Distribution License("CDDL") (collectively, the
12 * "License"). You may not use this file except in compliance with the
13 * License. You can obtain a copy of the License at
14 * http://www.netbeans.org/cddl-gplv2.html
15 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16 * specific language governing permissions and limitations under the
17 * License. When distributing the software, include this License Header
18 * Notice in each file and include the License file at
19 * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
20 * particular file as subject to the "Classpath" exception as provided
21 * by Oracle in the GPL Version 2 section of the License file that
22 * accompanied this code. If applicable, add the following below the
23 * License Header, with the fields enclosed by brackets [] replaced by
24 * your own identifying information:
25 * "Portions Copyrighted [year] [name of copyright owner]"
26 *
27 * If you wish your version of this file to be governed by only the CDDL
28 * or only the GPL Version 2, indicate your decision by adding
29 * "[Contributor] elects to include this software in this distribution
30 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31 * single choice of license, a recipient has the option to distribute
32 * your version of this file under either the CDDL, the GPL Version 2 or
33 * to extend the choice of license to its licensees as provided above.
34 * However, if you add GPL Version 2 code and therefore, elected the GPL
35 * Version 2 license, then the option applies only if the new code is
36 * made subject to such option by the copyright holder.
37 *
38 * Contributor(s):
39 *
40 * Portions Copyrighted 2009 Sun Microsystems, Inc.
41 */
42
43package org.netbeans.modules.keyring.mac;
44
45import com.sun.jna.Library;
46import com.sun.jna.Native;
47import com.sun.jna.Pointer;
48
49/**
50 * @see <a href="http://developer.apple.com/mac/library/DOCUMENTATION/Security/Reference/keychainservices/Reference/reference.html">Security Framework Reference</a>
51 */
52public interface SecurityLibrary extends Library {
53
54 SecurityLibrary LIBRARY = (SecurityLibrary) Native.loadLibrary("Security", SecurityLibrary.class);
55
56 int SecKeychainAddGenericPassword(
57 Pointer keychain,
58 int serviceNameLength,
59 byte[] serviceName,
60 int accountNameLength,
61 byte[] accountName,
62 int passwordLength,
63 byte[] passwordData,
64 Pointer itemRef
65 );
66
67 int SecKeychainItemModifyContent(
68 Pointer/*SecKeychainItemRef*/ itemRef,
69 Pointer/*SecKeychainAttributeList**/ attrList,
70 int length,
71 byte[] data
72 );
73
74 int SecKeychainFindGenericPassword(
75 Pointer keychainOrArray,
76 int serviceNameLength,
77 byte[] serviceName,
78 int accountNameLength,
79 byte[] accountName,
80 int[] passwordLength,
81 Pointer[] passwordData,
82 Pointer/*SecKeychainItemRef*/[] itemRef
83 );
84
85 int SecKeychainItemDelete(
86 Pointer itemRef
87 );
88
89 Pointer/*CFString*/ SecCopyErrorMessageString(
90 int status,
91 Pointer reserved
92 );
93
94 // http://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFStringRef/Reference/reference.html
95
96 long/*CFIndex*/ CFStringGetLength(
97 Pointer/*CFStringRef*/ theString
98 );
99
100 char/*UniChar*/ CFStringGetCharacterAtIndex(
101 Pointer/*CFStringRef*/ theString,
102 long/*CFIndex*/ idx
103 );
104
105 void CFRelease(
106 Pointer/*CFTypeRef*/ cf
107 );
108
109}
Note: See TracBrowser for help on using the repository browser.