PERFORCE change 1202588 for review

John-Mark Gurney jmg at FreeBSD.org
Fri Nov 7 00:50:53 UTC 2014


http://p4web.freebsd.org/@@1202588?ac=10

Change 1202588 by jmg at jmg_carbon2 on 2014/11/07 00:50:03

	add support for fetching the name of a crid...  Add a small little
	test program that dumps the names of all the crypto devices in the
	system...
	
	Sponsored by:	FreeBSD Foundation
	Sponsored by:	Netgate

Affected files ...

.. //depot/projects/opencrypto/tests/sys/opencrypto/cryptodev.py#3 edit

Differences ...

==== //depot/projects/opencrypto/tests/sys/opencrypto/cryptodev.py#3 (text+ko) ====

@@ -94,17 +94,30 @@
 
 _cryptodev = _getdev()
 
+def _findop(crid, name):
+	fop = FindOp()
+	fop.crid = crid
+	fop.name = name
+	s = array.array('B', fop.pack_hdr())
+	ioctl(_cryptodev, CIOCFINDDEV, s, 1)
+	fop.unpack(s)
+
+	try:
+		idx = fop.name.index('\x00')
+		name = fop.name[:idx]
+	except ValueError:
+		name = fop.name
+
+	return fop.crid, name
+
 class Crypto:
 	@staticmethod
 	def findcrid(name):
-		fop = FindOp()
-		fop.crid = -1
-		fop.name = name
-		s = array.array('B', fop.pack_hdr())
-		ioctl(_cryptodev, CIOCFINDDEV, s, 1)
-		fop.unpack(s)
+		return _findop(-1, name)[0]
 
-		return fop.crid
+	@staticmethod
+	def getcridname(crid):
+		return _findop(crid, '')[1]
 
 	def __init__(self, cipher=0, key=None, mac=0, mackey=None,
 	    crid=CRYPTOCAP_F_SOFTWARE | CRYPTOCAP_F_HARDWARE):
@@ -346,8 +359,18 @@
 
 if __name__ == '__main__':
 	if True:
-		print Crypto.findcrid('aesni0')
+		try:
+			crid = Crypto.findcrid('aesni0')
+			print 'aesni:', crid
+		except IOError:
+			print 'aesni0 not found'
 
+		for i in xrange(10):
+			try:
+				name = Crypto.getcridname(i)
+				print '%2d: %s' % (i, `name`)
+			except IOError:
+				pass
 	elif False:
 		kp = KATParser('/usr/home/jmg/aesni.testing/format tweak value input - data unit seq no/XTSGenAES128.rsp', [ 'COUNT', 'DataUnitLen', 'Key', 'DataUnitSeqNumber', 'PT', 'CT' ])
 		for mode, ni in kp:


More information about the p4-projects mailing list