diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 21:49:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 21:49:06 -0400 |
commit | e05644e17e744315bce12b0948cdc36910b9a76e (patch) | |
tree | 92d62ff59c57f991ef6b5c3cc2c2dcd205946a11 /lib/mpi/mpi-bit.c | |
parent | 97e7292ab5ccd30a13c3612835535fc3f3e59715 (diff) | |
parent | 663728418e3494f8e4a82f5d1b2f23c22d11be35 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull security subsystem updates from James Morris:
"Nothing groundbreaking for this kernel, just cleanups and fixes, and a
couple of Smack enhancements."
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (21 commits)
Smack: Maintainer Record
Smack: don't show empty rules when /smack/load or /smack/load2 is read
Smack: user access check bounds
Smack: onlycap limits on CAP_MAC_ADMIN
Smack: fix smack_new_inode bogosities
ima: audit is compiled only when enabled
ima: ima_initialized is set only if successful
ima: add policy for pseudo fs
ima: remove unused cleanup functions
ima: free securityfs violations file
ima: use full pathnames in measurement list
security: Fix nommu build.
samples: seccomp: add .gitignore for untracked executables
tpm: check the chip reference before using it
TPM: fix memleak when register hardware fails
TPM: chip disabled state erronously being reported as error
MAINTAINERS: TPM maintainers' contacts update
Merge branches 'next-queue' and 'next' into next
Remove unused code from MPI library
Revert "crypto: GnuPG based MPI lib - additional sources (part 4)"
...
Diffstat (limited to 'lib/mpi/mpi-bit.c')
-rw-r--r-- | lib/mpi/mpi-bit.c | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/lib/mpi/mpi-bit.c b/lib/mpi/mpi-bit.c index 0c505361da19..568724804f29 100644 --- a/lib/mpi/mpi-bit.c +++ b/lib/mpi/mpi-bit.c | |||
@@ -54,165 +54,3 @@ unsigned mpi_get_nbits(MPI a) | |||
54 | return n; | 54 | return n; |
55 | } | 55 | } |
56 | EXPORT_SYMBOL_GPL(mpi_get_nbits); | 56 | EXPORT_SYMBOL_GPL(mpi_get_nbits); |
57 | |||
58 | /**************** | ||
59 | * Test whether bit N is set. | ||
60 | */ | ||
61 | int mpi_test_bit(MPI a, unsigned n) | ||
62 | { | ||
63 | unsigned limbno, bitno; | ||
64 | mpi_limb_t limb; | ||
65 | |||
66 | limbno = n / BITS_PER_MPI_LIMB; | ||
67 | bitno = n % BITS_PER_MPI_LIMB; | ||
68 | |||
69 | if (limbno >= a->nlimbs) | ||
70 | return 0; /* too far left: this is a 0 */ | ||
71 | limb = a->d[limbno]; | ||
72 | return (limb & (A_LIMB_1 << bitno)) ? 1 : 0; | ||
73 | } | ||
74 | |||
75 | /**************** | ||
76 | * Set bit N of A. | ||
77 | */ | ||
78 | int mpi_set_bit(MPI a, unsigned n) | ||
79 | { | ||
80 | unsigned limbno, bitno; | ||
81 | |||
82 | limbno = n / BITS_PER_MPI_LIMB; | ||
83 | bitno = n % BITS_PER_MPI_LIMB; | ||
84 | |||
85 | if (limbno >= a->nlimbs) { /* resize */ | ||
86 | if (a->alloced >= limbno) | ||
87 | if (mpi_resize(a, limbno + 1) < 0) | ||
88 | return -ENOMEM; | ||
89 | a->nlimbs = limbno + 1; | ||
90 | } | ||
91 | a->d[limbno] |= (A_LIMB_1 << bitno); | ||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | /**************** | ||
96 | * Set bit N of A. and clear all bits above | ||
97 | */ | ||
98 | int mpi_set_highbit(MPI a, unsigned n) | ||
99 | { | ||
100 | unsigned limbno, bitno; | ||
101 | |||
102 | limbno = n / BITS_PER_MPI_LIMB; | ||
103 | bitno = n % BITS_PER_MPI_LIMB; | ||
104 | |||
105 | if (limbno >= a->nlimbs) { /* resize */ | ||
106 | if (a->alloced >= limbno) | ||
107 | if (mpi_resize(a, limbno + 1) < 0) | ||
108 | return -ENOMEM; | ||
109 | a->nlimbs = limbno + 1; | ||
110 | } | ||
111 | a->d[limbno] |= (A_LIMB_1 << bitno); | ||
112 | for (bitno++; bitno < BITS_PER_MPI_LIMB; bitno++) | ||
113 | a->d[limbno] &= ~(A_LIMB_1 << bitno); | ||
114 | a->nlimbs = limbno + 1; | ||
115 | return 0; | ||
116 | } | ||
117 | |||
118 | /**************** | ||
119 | * clear bit N of A and all bits above | ||
120 | */ | ||
121 | void mpi_clear_highbit(MPI a, unsigned n) | ||
122 | { | ||
123 | unsigned limbno, bitno; | ||
124 | |||
125 | limbno = n / BITS_PER_MPI_LIMB; | ||
126 | bitno = n % BITS_PER_MPI_LIMB; | ||
127 | |||
128 | if (limbno >= a->nlimbs) | ||
129 | return; /* not allocated, so need to clear bits :-) */ | ||
130 | |||
131 | for (; bitno < BITS_PER_MPI_LIMB; bitno++) | ||
132 | a->d[limbno] &= ~(A_LIMB_1 << bitno); | ||
133 | a->nlimbs = limbno + 1; | ||
134 | } | ||
135 | |||
136 | /**************** | ||
137 | * Clear bit N of A. | ||
138 | */ | ||
139 | void mpi_clear_bit(MPI a, unsigned n) | ||
140 | { | ||
141 | unsigned limbno, bitno; | ||
142 | |||
143 | limbno = n / BITS_PER_MPI_LIMB; | ||
144 | bitno = n % BITS_PER_MPI_LIMB; | ||
145 | |||
146 | if (limbno >= a->nlimbs) | ||
147 | return; /* don't need to clear this bit, it's to far to left */ | ||
148 | a->d[limbno] &= ~(A_LIMB_1 << bitno); | ||
149 | } | ||
150 | |||
151 | /**************** | ||
152 | * Shift A by N bits to the right | ||
153 | * FIXME: should use alloc_limb if X and A are same. | ||
154 | */ | ||
155 | int mpi_rshift(MPI x, MPI a, unsigned n) | ||
156 | { | ||
157 | mpi_ptr_t xp; | ||
158 | mpi_size_t xsize; | ||
159 | |||
160 | xsize = a->nlimbs; | ||
161 | x->sign = a->sign; | ||
162 | if (RESIZE_IF_NEEDED(x, (size_t) xsize) < 0) | ||
163 | return -ENOMEM; | ||
164 | xp = x->d; | ||
165 | |||
166 | if (xsize) { | ||
167 | mpihelp_rshift(xp, a->d, xsize, n); | ||
168 | MPN_NORMALIZE(xp, xsize); | ||
169 | } | ||
170 | x->nlimbs = xsize; | ||
171 | return 0; | ||
172 | } | ||
173 | |||
174 | /**************** | ||
175 | * Shift A by COUNT limbs to the left | ||
176 | * This is used only within the MPI library | ||
177 | */ | ||
178 | int mpi_lshift_limbs(MPI a, unsigned int count) | ||
179 | { | ||
180 | const int n = a->nlimbs; | ||
181 | mpi_ptr_t ap; | ||
182 | int i; | ||
183 | |||
184 | if (!count || !n) | ||
185 | return 0; | ||
186 | |||
187 | if (RESIZE_IF_NEEDED(a, n + count) < 0) | ||
188 | return -ENOMEM; | ||
189 | |||
190 | ap = a->d; | ||
191 | for (i = n - 1; i >= 0; i--) | ||
192 | ap[i + count] = ap[i]; | ||
193 | for (i = 0; i < count; i++) | ||
194 | ap[i] = 0; | ||
195 | a->nlimbs += count; | ||
196 | return 0; | ||
197 | } | ||
198 | |||
199 | /**************** | ||
200 | * Shift A by COUNT limbs to the right | ||
201 | * This is used only within the MPI library | ||
202 | */ | ||
203 | void mpi_rshift_limbs(MPI a, unsigned int count) | ||
204 | { | ||
205 | mpi_ptr_t ap = a->d; | ||
206 | mpi_size_t n = a->nlimbs; | ||
207 | unsigned int i; | ||
208 | |||
209 | if (count >= n) { | ||
210 | a->nlimbs = 0; | ||
211 | return; | ||
212 | } | ||
213 | |||
214 | for (i = 0; i < n - count; i++) | ||
215 | ap[i] = ap[i + count]; | ||
216 | ap[i] = 0; | ||
217 | a->nlimbs -= count; | ||
218 | } | ||