@ -2,297 +2,6 @@
# v i m : f i l e t y p e = p y t h o n
#
# #
# @ S e v S t a t e :
#
# A n e n u m e r a t i o n o f S E V s t a t e i n f o r m a t i o n u s e d d u r i n g @ q u e r y - s e v .
#
# @ u n i n i t : T h e g u e s t i s u n i n i t i a l i z e d .
#
# @ l a u n c h - u p d a t e : T h e g u e s t i s c u r r e n t l y b e i n g l a u n c h e d ; p l a i n t e x t
# d a t a a n d r e g i s t e r s t a t e i s b e i n g i m p o r t e d .
#
# @ l a u n c h - s e c r e t : T h e g u e s t i s c u r r e n t l y b e i n g l a u n c h e d ; c i p h e r t e x t
# d a t a i s b e i n g i m p o r t e d .
#
# @ r u n n i n g : T h e g u e s t i s f u l l y l a u n c h e d o r m i g r a t e d i n .
#
# @ s e n d - u p d a t e : T h e g u e s t i s c u r r e n t l y b e i n g m i g r a t e d o u t t o a n o t h e r
# m a c h i n e .
#
# @ r e c e i v e - u p d a t e : T h e g u e s t i s c u r r e n t l y b e i n g m i g r a t e d f r o m a n o t h e r
# m a c h i n e .
#
# S i n c e : 2.12
# #
{ ' e n u m ' : ' S e v S t a t e ' ,
' d a t a ' : [ ' u n i n i t ' , ' l a u n c h - u p d a t e ' , ' l a u n c h - s e c r e t ' , ' r u n n i n g ' ,
' s e n d - u p d a t e ' , ' r e c e i v e - u p d a t e ' ] ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v G u e s t T y p e :
#
# A n e n u m e r a t i o n i n d i c a t i n g t h e t y p e o f S E V g u e s t b e i n g r u n .
#
# @ s e v : T h e g u e s t i s a l e g a c y S E V o r S E V - E S g u e s t .
#
# @ s e v - s n p : T h e g u e s t i s a n S E V - S N P g u e s t .
#
# S i n c e : 6.2
# #
{ ' e n u m ' : ' S e v G u e s t T y p e ' ,
' d a t a ' : [ ' s e v ' , ' s e v - s n p ' ] ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v G u e s t I n f o :
#
# I n f o r m a t i o n s p e c i f i c t o l e g a c y S E V / S E V - E S g u e s t s .
#
# @ p o l i c y : S E V p o l i c y v a l u e
#
# @ h a n d l e : S E V f i r m w a r e h a n d l e
#
# S i n c e : 2.12
# #
{ ' s t r u c t ' : ' S e v G u e s t I n f o ' ,
' d a t a ' : { ' p o l i c y ' : ' u i n t 3 2 ' ,
' h a n d l e ' : ' u i n t 32 ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v S n p G u e s t I n f o :
#
# I n f o r m a t i o n s p e c i f i c t o S E V - S N P g u e s t s .
#
# @ s n p - p o l i c y : S E V - S N P p o l i c y v a l u e
#
# S i n c e : 9.1
# #
{ ' s t r u c t ' : ' S e v S n p G u e s t I n f o ' ,
' d a t a ' : { ' s n p - p o l i c y ' : ' u i n t 6 4 ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v I n f o :
#
# I n f o r m a t i o n a b o u t S e c u r e E n c r y p t e d V i r t u a l i z a t i o n ( S E V ) s u p p o r t
#
# @ e n a b l e d : true i f S E V i s a c t i v e
#
# @ a p i - m a j o r : S E V A P I m a j o r v e r s i o n
#
# @ a p i - m i n o r : S E V A P I m i n o r v e r s i o n
#
# @ b u i l d - i d : S E V F W b u i l d i d
#
# @ s t a t e : S E V g u e s t s t a t e
#
# @ s e v - t y p e : T y p e o f S E V g u e s t b e i n g r u n
#
# S i n c e : 2.12
# #
{ ' u n i o n ' : ' S e v I n f o ' ,
' b a s e ' : { ' e n a b l e d ' : ' b o o l ' ,
' a p i - m a j o r ' : ' u i n t 8 ' ,
' a p i - m i n o r ' : ' u i n t 8 ' ,
' b u i l d - i d ' : ' u i n t 8 ' ,
' s t a t e ' : ' S e v S t a t e ' ,
' s e v - t y p e ' : ' S e v G u e s t T y p e ' } ,
' d i s c r i m i n a t o r ' : ' s e v - t y p e ' ,
' d a t a ' : {
' s e v ' : ' S e v G u e s t I n f o ' ,
' s e v - s n p ' : ' S e v S n p G u e s t I n f o ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ q u e r y - s e v :
#
# R e t u r n s i n f o r m a t i o n a b o u t S E V / S E V - E S / S E V - S N P .
#
# I f u n a v a i l a b l e d u e t o a n i n c o m p a t i b l e c o n f i g u r a t i o n t h e r e t u r n e d
# @ e n a b l e d f i e l d i s s e t t o ' false ' a n d t h e s t a t e o f a l l o t h e r f i e l d s
# i s u n s p e c i f i e d .
#
# R e t u r n s : @ S e v I n f o
#
# S i n c e : 2.12
#
# . . q m p - e x a m p l e : :
#
# - > { "execute" : "query-sev" }
# < - { "return" : { "enabled" : true , "api-major" : 0 , "api-minor" : 0 ,
# "build-id" : 0 , "policy" : 0 , "state" : "running" ,
# "handle" : 1 } }
# #
{ ' c o m m a n d ' : ' q u e r y - s e v ' , ' r e t u r n s ' : ' S e v I n f o ' ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v L a u n c h M e a s u r e I n f o :
#
# S E V G u e s t L a u n c h m e a s u r e m e n t i n f o r m a t i o n
#
# @ d a t a : t h e m e a s u r e m e n t v a l u e e n c o d e d i n b a s e 64
#
# S i n c e : 2.12
# #
{ ' s t r u c t ' : ' S e v L a u n c h M e a s u r e I n f o ' , ' d a t a ' : { ' d a t a ' : ' s t r ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ q u e r y - s e v - l a u n c h - m e a s u r e :
#
# Q u e r y t h e S E V / S E V - E S g u e s t l a u n c h i n f o r m a t i o n .
#
# T h i s i s o n l y v a l i d o n x 86 m a c h i n e s c o n f i g u r e d w i t h K V M a n d t h e
# ' s e v - g u e s t ' c o n f i d e n t i a l v i r t u a l i z a t i o n o b j e c t . T h e l a u n c h
# m e a s u r e m e n t f o r S E V - S N P g u e s t s i s o n l y a v a i l a b l e w i t h i n t h e g u e s t .
#
# R e t u r n s : T h e @ S e v L a u n c h M e a s u r e I n f o f o r t h e g u e s t
#
# E r r o r s :
# - I f t h e l a u n c h m e a s u r e m e n t i s u n a v a i l a b l e , e i t h e r d u e t o a n
# i n v a l i d g u e s t c o n f i g u r a t i o n o r i f t h e g u e s t h a s n o t r e a c h e d
# t h e r e q u i r e d S E V s t a t e , G e n e r i c E r r o r
#
# S i n c e : 2.12
#
# . . q m p - e x a m p l e : :
#
# - > { "execute" : "query-sev-launch-measure" }
# < - { "return" : { "data" : "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
# #
{ ' c o m m a n d ' : ' q u e r y - s e v - l a u n c h - m e a s u r e ' , ' r e t u r n s ' : ' S e v L a u n c h M e a s u r e I n f o ' ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v C a p a b i l i t y :
#
# T h e s t r u c t d e s c r i b e s c a p a b i l i t y f o r a S e c u r e E n c r y p t e d
# V i r t u a l i z a t i o n f e a t u r e .
#
# @ p d h : P l a t f o r m D i f f i e - H e l l m a n k e y ( b a s e 64 e n c o d e d )
#
# @ c e r t - c h a i n : P D H c e r t i f i c a t e c h a i n ( b a s e 64 e n c o d e d )
#
# @ c p u 0 - i d : U n i q u e I D o f C P U 0 ( b a s e 64 e n c o d e d ) ( s i n c e 7.1 )
#
# @ c b i t p o s : C - b i t l o c a t i o n i n p a g e t a b l e e n t r y
#
# @ r e d u c e d - p h y s - b i t s : N u m b e r o f p h y s i c a l A d d r e s s b i t r e d u c t i o n w h e n
# S E V i s e n a b l e d
#
# S i n c e : 2.12
# #
{ ' s t r u c t ' : ' S e v C a p a b i l i t y ' ,
' d a t a ' : { ' p d h ' : ' s t r ' ,
' c e r t - c h a i n ' : ' s t r ' ,
' c p u 0 - i d ' : ' s t r ' ,
' c b i t p o s ' : ' i n t ' ,
' r e d u c e d - p h y s - b i t s ' : ' i n t ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ q u e r y - s e v - c a p a b i l i t i e s :
#
# G e t S E V c a p a b i l i t i e s .
#
# T h i s i s o n l y s u p p o r t e d o n A M D X 86 p l a t f o r m s w i t h K V M e n a b l e d .
#
# R e t u r n s : S e v C a p a b i l i t y o b j e c t s .
#
# E r r o r s :
# - I f S E V i s n o t a v a i l a b l e o n t h e p l a t f o r m , G e n e r i c E r r o r
#
# S i n c e : 2.12
#
# . . q m p - e x a m p l e : :
#
# - > { "execute" : "query-sev-capabilities" }
# < - { "return" : { "pdh" : "8CCDD8DDD" , "cert-chain" : "888CCCDDDEE" ,
# "cpu0-id" : "2lvmGwo+...61iEinw==" ,
# "cbitpos" : 47 , "reduced-phys-bits" : 1 } }
# #
{ ' c o m m a n d ' : ' q u e r y - s e v - c a p a b i l i t i e s ' , ' r e t u r n s ' : ' S e v C a p a b i l i t y ' ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ s e v - i n j e c t - l a u n c h - s e c r e t :
#
# T h i s c o m m a n d i n j e c t s a s e c r e t b l o b i n t o m e m o r y o f a S E V / S E V - E S
# g u e s t .
#
# T h i s i s o n l y v a l i d o n x 86 m a c h i n e s c o n f i g u r e d w i t h K V M a n d t h e
# ' s e v - g u e s t ' c o n f i d e n t i a l v i r t u a l i z a t i o n o b j e c t . S E V - S N P g u e s t s d o
# n o t s u p p o r t l a u n c h s e c r e t i n j e c t i o n .
#
# @ p a c k e t - h e a d e r : t h e l a u n c h s e c r e t p a c k e t h e a d e r e n c o d e d i n b a s e 64
#
# @ s e c r e t : t h e l a u n c h s e c r e t d a t a t o b e i n j e c t e d e n c o d e d i n b a s e 64
#
# @ g p a : t h e g u e s t p h y s i c a l a d d r e s s w h e r e s e c r e t w i l l b e i n j e c t e d .
#
# E r r o r s :
# - I f l a u n c h s e c r e t i n j e c t i o n i s n o t p o s s i b l e , e i t h e r d u e t o
# a n i n v a l i d g u e s t c o n f i g u r a t i o n , o r i f t h e g u e s t h a s n o t
# r e a c h e d t h e r e q u i r e d S E V s t a t e , G e n e r i c E r r o r
#
# S i n c e : 6.0
# #
{ ' c o m m a n d ' : ' s e v - i n j e c t - l a u n c h - s e c r e t ' ,
' d a t a ' : { ' p a c k e t - h e a d e r ' : ' s t r ' , ' s e c r e t ' : ' s t r ' , ' * g p a ' : ' u i n t 6 4 ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ S e v A t t e s t a t i o n R e p o r t :
#
# T h e s t r u c t d e s c r i b e s a t t e s t a t i o n r e p o r t f o r a S e c u r e E n c r y p t e d
# V i r t u a l i z a t i o n f e a t u r e .
#
# @ d a t a : g u e s t a t t e s t a t i o n r e p o r t ( b a s e 64 e n c o d e d )
#
# S i n c e : 6.1
# #
{ ' s t r u c t ' : ' S e v A t t e s t a t i o n R e p o r t ' ,
' d a t a ' : { ' d a t a ' : ' s t r ' } ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ q u e r y - s e v - a t t e s t a t i o n - r e p o r t :
#
# T h i s c o m m a n d i s u s e d t o g e t t h e S E V a t t e s t a t i o n r e p o r t .
#
# T h i s i s o n l y v a l i d o n x 86 m a c h i n e s c o n f i g u r e d w i t h K V M a n d t h e
# ' s e v - g u e s t ' c o n f i d e n t i a l v i r t u a l i z a t i o n o b j e c t . T h e a t t e s t a t i o n
# r e p o r t f o r S E V - S N P g u e s t s i s o n l y a v a i l a b l e w i t h i n t h e g u e s t .
#
# @ m n o n c e : a r a n d o m 16 b y t e s v a l u e e n c o d e d i n b a s e 64 ( i t w i l l b e
# i n c l u d e d i n r e p o r t )
#
# R e t u r n s : S e v A t t e s t a t i o n R e p o r t o b j e c t s .
#
# E r r o r s :
# - T h i s w i l l r e t u r n a n e r r o r i f t h e a t t e s t a t i o n r e p o r t i s
# u n a v a i l a b l e , e i t h e r d u e t o a n i n v a l i d g u e s t c o n f i g u r a t i o n
# o r i f t h e g u e s t h a s n o t r e a c h e d t h e r e q u i r e d S E V s t a t e ,
# G e n e r i c E r r o r
#
# S i n c e : 6.1
#
# . . q m p - e x a m p l e : :
#
# - > { "execute" : "query-sev-attestation-report" ,
# "arguments" : { "mnonce" : "aaaaaaa" } }
# < - { "return" : { "data" : "aaaaaaaabbbddddd" } }
# #
{ ' c o m m a n d ' : ' q u e r y - s e v - a t t e s t a t i o n - r e p o r t ' ,
' d a t a ' : { ' m n o n c e ' : ' s t r ' } ,
' r e t u r n s ' : ' S e v A t t e s t a t i o n R e p o r t ' ,
' i f ' : ' T A R G E T _ I 386 ' }
# #
# @ G I C C a p a b i l i t y :
#