1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
23# Copyright 2013 Saso Kiselkov. All rights reserved.
24# Copyright (c) 2018, Joyent, Inc.
25#
26
27#
28# MAPFILE HEADER START
29#
30# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
31# Object versioning must comply with the rules detailed in
32#
33#	usr/src/lib/README.mapfiles
34#
35# You should not be making modifications here until you've read the most current
36# copy of that file. If you need help, contact a gatekeeper for guidance.
37#
38# MAPFILE HEADER END
39#
40
41$mapfile_version 2
42
43# Note:
44#
45#	SHA256Update, SHA384Update, and SHA512Update are all
46#	weak aliases for SHA2Update.
47#
48#	SHA256Final, SHA384Final, and SHA512Final are all
49#	weak aliases for SHA2Final
50#
51# We use NODYNSORT to keep the weak aliases out of the .SUNW_dymsymsort
52# ELF section. As a result, ld will put the two main symbols in.
53#
54
55SYMBOL_VERSION ILLUMOS_0.1 {
56    global:
57	Skein1024_Final;
58	Skein1024_Final_Pad;
59	Skein1024_Init;
60	Skein1024_InitExt;
61	Skein1024_Output;
62	Skein1024_Update;
63	Skein_256_Final;
64	Skein_256_Final_Pad;
65	Skein_256_Init;
66	Skein_256_InitExt;
67	Skein_256_Output;
68	Skein_256_Update;
69	Skein_512_Final;
70	Skein_512_Final_Pad;
71	Skein_512_Init;
72	Skein_512_InitExt;
73	Skein_512_Output;
74	Skein_512_Update;
75	EdonRFinal;
76	EdonRHash;
77	EdonRInit;
78	EdonRUpdate;
79} SUNW_1.1;
80
81SYMBOL_VERSION SUNW_1.1 {
82    global:
83	MD4Final;
84	MD4Init;
85	MD4Update;
86	md5_calc;
87	MD5Final	{ FLAGS = NODIRECT; };	# Addr interpose from testsuite
88	MD5Init	{ FLAGS = NODIRECT; };	# Addr interpose from testsuite
89	MD5Update	{ FLAGS = NODIRECT; };	# Addr interpose from testsuite
90	SHA1Final;
91	SHA1Init;
92	SHA1Update;
93	SHA256Final	{ FLAGS = NODYNSORT; };
94	SHA256Init;
95	SHA256Update	{ FLAGS = NODYNSORT; };
96	SHA2Final;
97	SHA2Init;
98	SHA2Update;
99	SHA384Final	{ FLAGS = NODYNSORT; };
100	SHA384Init;
101	SHA384Update	{ FLAGS = NODYNSORT; };
102	SHA512Final	{ FLAGS = NODYNSORT; };
103	SHA512Init;
104	SHA512Update	{ FLAGS = NODYNSORT; };
105};
106
107SYMBOL_VERSION ILLUMOSprivate {
108    global:
109$if _ELF64 && _x86
110	#
111	# We use hardware capabilities to define multiple versions of
112	# the block processing functions for some of the SHA functions.
113	# Unfortunately, that requires these to be global symbols, even
114	# though we don't want them to be. As such, they remain in a
115	# private version and hopefully some day will be removed. These
116	# symbols are not exposed in any meaningful way in a header file
117	# so no application should actually end up requiring this
118	# section.
119	#
120	sha1_block_data_order;
121	SHA256TransformBlocks;
122$endif
123    local:
124	*;
125};
126