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) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  23 #
  24 # Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
  25 # Copyright 2018, Joyent, Inc.
  26 #
  27 # lib/pkcs11/pkcs11_softtoken/Makefile.com
  28 #
  29 
  30 LIBRARY = pkcs11_softtoken.a
  31 VERS= .1
  32 
  33 LCL_OBJECTS = \
  34         softGeneral.o           \
  35         softSlotToken.o \
  36         softSession.o           \
  37         softObject.o            \
  38         softDigest.o            \
  39         softSign.o              \
  40         softVerify.o            \
  41         softDualCrypt.o \
  42         softKeys.o              \
  43         softRand.o              \
  44         softSessionUtil.o       \
  45         softDigestUtil.o        \
  46         softAttributeUtil.o     \
  47         softObjectUtil.o        \
  48         softDESCrypt.o          \
  49         softEncrypt.o           \
  50         softDecrypt.o           \
  51         softEncryptUtil.o       \
  52         softDecryptUtil.o       \
  53         softSignUtil.o          \
  54         softVerifyUtil.o        \
  55         softMAC.o               \
  56         softRSA.o               \
  57         softKeysUtil.o          \
  58         softARCFourCrypt.o      \
  59         softDSA.o               \
  60         softDH.o                \
  61         softAESCrypt.o          \
  62         softKeystore.o          \
  63         softKeystoreUtil.o      \
  64         softSSL.o               \
  65         softASN1.o              \
  66         softBlowfishCrypt.o     \
  67         softEC.o
  68 
  69 ASFLAGS = $(AS_PICFLAGS) -P -D__STDC__ -D_ASM $(CPPFLAGS)
  70 
  71 ECC_COBJECTS = \
  72         ec.o ec2_163.o ec2_mont.o ecdecode.o ecl_mult.o ecp_384.o \
  73         ecp_jac.o ec2_193.o ecl.o ecp_192.o ecp_521.o \
  74         ecp_jm.o ec2_233.o ecl_curve.o ecp_224.o ecp_aff.o ecp_mont.o \
  75         ec2_aff.o ec_naf.o ecl_gf.o ecp_256.o oid.o secitem.o \
  76         ec2_test.o ecp_test.o
  77 
  78 MPI_COBJECTS = mp_gf2m.o mpi.o mplogic.o mpmontg.o mpprime.o
  79 RNG_COBJECTS = fips_random.o
  80 
  81 ECC_OBJECTS = $(ECC_COBJECTS) $(ECC_PSR_OBJECTS)
  82 MPI_OBJECTS = $(MPI_COBJECTS) $(MPI_PSR_OBJECTS)
  83 RNG_OBJECTS = $(RNG_COBJECTS)
  84 BER_OBJECTS = bprint.o decode.o encode.o io.o
  85 
  86 OBJECTS = \
  87         $(LCL_OBJECTS)          \
  88         $(MPI_OBJECTS)          \
  89         $(RNG_OBJECTS)          \
  90         $(BIGNUM_OBJECTS)       \
  91         $(BER_OBJECTS)          \
  92         $(ECC_OBJECTS)
  93 
  94 AESDIR=         $(SRC)/common/crypto/aes
  95 BLOWFISHDIR=    $(SRC)/common/crypto/blowfish
  96 ARCFOURDIR=     $(SRC)/common/crypto/arcfour
  97 DESDIR=         $(SRC)/common/crypto/des
  98 DHDIR=          $(SRC)/common/crypto/dh
  99 DSADIR=         $(SRC)/common/crypto/dsa
 100 ECCDIR=         $(SRC)/common/crypto/ecc
 101 MPIDIR=         $(SRC)/common/mpi
 102 RSADIR=         $(SRC)/common/crypto/rsa
 103 RNGDIR=         $(SRC)/common/crypto/rng
 104 SHA1DIR=        $(SRC)/common/crypto/sha1
 105 SHA2DIR=        $(SRC)/common/crypto/sha2
 106 BIGNUMDIR=      $(SRC)/common/bignum
 107 PADDIR=         $(SRC)/common/crypto/padding
 108 BERDIR=         ../../../libldap5/sources/ldap/ber
 109 
 110 include $(SRC)/lib/Makefile.lib
 111 
 112 #       set signing mode
 113 POST_PROCESS_SO +=      ; $(ELFSIGN_CRYPTO)
 114 
 115 SRCDIR= ../common
 116 
 117 SRCS =  \
 118         $(LCL_OBJECTS:%.o=$(SRCDIR)/%.c) \
 119         $(MPI_COBJECTS:%.o=$(MPIDIR)/%.c) \
 120         $(ECC_COBJECTS:%.o=$(ECCDIR)/%.c) \
 121         $(RNG_COBJECTS:%.o=$(RNGDIR)/%.c)
 122 
 123 # libelfsign needs a static pkcs11_softtoken
 124 LIBS    =       $(DYNLIB)
 125 LDLIBS  +=      -lc -lmd -lcryptoutil -lsoftcrypto -lgen
 126 
 127 CSTD =  $(CSTD_GNU99)
 128 C99LMODE = -Xc99=%all
 129 
 130 CFLAGS  +=      $(CCVERBOSE)
 131 
 132 CERRWARN +=     -_gcc=-Wno-unused-label
 133 CERRWARN +=     -_gcc=-Wno-parentheses
 134 CERRWARN +=     -_gcc=-Wno-uninitialized
 135 CERRWARN +=     -_gcc=-Wno-type-limits
 136 CERRWARN +=     -_gcc=-Wno-unused-variable
 137 CERRWARN +=     -_gcc=-Wno-empty-body
 138 
 139 CPPFLAGS += -I$(AESDIR) -I$(BLOWFISHDIR) -I$(ARCFOURDIR) -I$(DESDIR) \
 140             -I$(DHDIR) -I$(DSADIR) -I$(ECCDIR) -I$(SRC)/common/crypto \
 141             -I$(MPIDIR) -I$(RSADIR) -I$(RNGDIR) \
 142             -I$(SHA1DIR) -I$(SHA2DIR) -I$(SRCDIR) \
 143             -I$(BIGNUMDIR) -I$(PADDIR) -D_POSIX_PTHREAD_SEMANTICS \
 144             -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B
 145 
 146 LINTFLAGS64 += -errchk=longptr64
 147 
 148 ROOTLIBDIR=     $(ROOT)/usr/lib/security
 149 ROOTLIBDIR64=   $(ROOT)/usr/lib/security/$(MACH64)
 150 
 151 LINTSRC = \
 152         $(LCL_OBJECTS:%.o=$(SRCDIR)/%.c) \
 153         $(RNG_COBJECTS:%.o=$(RNGDIR)/%.c)
 154 
 155 .KEEP_STATE:
 156 
 157 all:    $(LIBS)
 158 
 159 lint:   $$(LINTSRC)
 160         $(LINT.c) $(LINTCHECKFLAGS) $(LINTSRC) $(LDLIBS)
 161 
 162 pics/%.o:       $(BERDIR)/%.c
 163         $(COMPILE.c) -o $@ $< -D_SOLARIS_SDK -I$(BERDIR) \
 164                 -I../../../libldap5/include/ldap
 165         $(POST_PROCESS_O)
 166 
 167 pics/%.o:       $(ECCDIR)/%.c
 168         $(COMPILE.c) -o $@ $<
 169         $(POST_PROCESS_O)
 170 
 171 pics/%.o:       $(MPIDIR)/%.c
 172         $(COMPILE.c) -o $@ $<
 173         $(POST_PROCESS_O)
 174 
 175 pics/%.o:       $(RNGDIR)/%.c
 176         $(COMPILE.c) -o $@ $<
 177         $(POST_PROCESS_O)
 178 
 179 include $(SRC)/lib/Makefile.targ